簡體   English   中英

兩個 Python 程序之間的進程間消息傳遞

[英]Interprocess messaging between two Python programs

我們有兩個 Python 程序在兩個 linux 服務器上運行。 現在我們要在這些 Python 程序之間發送消息。 迄今為止最好的想法是創建一個 TCP/IP 服務器和客戶端體系結構,但這似乎是一種非常復雜的方法。 這真的是做這種事情的最佳實踐嗎?

我喜歡zeromq用於簡單的消息傳遞,它非常輕量級和快速......也非常靈活。 根據您的具體情況,使用 AMQP 消息傳遞也不是一個壞主意,我發現kombu是一個非常好的 Pythonic 庫。 您也可以使用xmlrpclib或設置一個簡單的 REST APIflask 每個選項都有它的位置,所以我會調查你所有的選項。

這實際上取決於您想要的消息傳遞類型以及兩個進程的角色。 如果它是正確的“客戶端/服務器”,我可能會創建一個SimpleHTTPServer ,然后使用 HTTP 在兩者之間進行通信。 您還可以使用 XMLRPCLib 和客戶端在它們之間進行對話。 使用您自己的自定義協議手動創建 TCP 服務器對我來說聽起來是個壞主意。 您還可以考慮使用消息隊列系統在它們之間進行通信。

你可以有一個mulitprocessing.managers 正如文檔所說:“經理 object 控制管理共享對象的服務器進程。其他進程可以使用代理訪問共享對象。”

在您的情況下,您可以創建一個控制其他進程的主進程,每個進程都會調用主進程來獲取數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM