我的設置如下 - 我有一個幾乎是「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