我的设置如下 - 我有一个几乎是“Hello World”示例基于龙卷风HTTP服务器:调用另一个进程的Python中
server = tornado.httpserver.HTTPServer(app)
server.bind(8888)
server.start(2)
tornado.ioloop.IOLoop.instance().start()
在此设置
现在,我也有另一个进程(让我们称之为控制过程)由根进程产生。因此,这个控制过程是两个龙卷风处理程序的兄弟姐妹。当然,我可以通过由根进程创建的管道在处理程序进程和控制进程之间进行通信。然而,我更感兴趣的是调用一个控制过程的方法并获取它的输出。
做这样的事情的最佳方法是什么?如果我使用管道将处理程序的请求发送到控件并返回结果,我应该使用锁来实现过程安全吗?
是的,它恰好是一个RPC。是的,我不知何故感到困惑,来自两个处理程序的两个输入和它们的输出可能混在一起(对我感到羞耻)。由于我对Tornado颇为新颖,你能否指定“为控制添加另一个协议”的含义? – dmg
@DJV:我的意思是......无论你是什么意思,你在问题中使用了四次这个名字。你想要一些“处理程序”来提出反对“控制程序”的请求。所以,如果这个“控制过程”已经在使用Tornado来实现,例如,一个Web应用服务器或者一个JSON-RPC-over-sockets服务器或者其他任何东西,那么只需添加另一个协议供其他进程使用,而不是实现从头开始独立的东西。 – abarnert