Woj*_*ilo 6 python rpc ipc communication
我做在Python3的应用,这将在划分batch和gui零件.
Batch负责处理逻辑并gui负责显示它.
我应该使用哪个进程间通信(IPC)框架满足以下要求:
附加:如果GUI保证也用Python编写,那么选择是否是其他选择?
编辑: 我发现了很多IPC库,比如:高效Python到Python IPC或ActiveMQ或RabbitMQ或ZeroMQ或.
到目前为止,我发现的最佳选择是:
它们是否适合这个问题?如果不是为什么?如果事情好转,请告诉我为什么.
Jon*_*han 10
你提到的三个看起来很合适,并且会满足你的要求.我认为你应该继续你最熟悉的东西\熟悉.
根据我的个人经验,我确实认为ZeroMQ是效率,易用性和互操作性之间的最佳组合.我很容易将zmq 2.2与Python 2.7集成,因此这将是我个人的最爱.但是正如我所说,我非常肯定你不能错过所有3个框架.
一半相关:需求往往随着时间而变化,您可能决定稍后切换框架,因此封装对框架的依赖将是一个很好的设计模式.(例如,有一个与框架交互的管道模块,并且其API使用您的内部数据结构和域语言)
我已经使用了Redis引擎.非常 简单,轻巧.
服务器端做:
import redis
r = redis.Redis() # Init
r.subscribe(['mychannel']) # Subscribe to "channel"
for x in r.listen():
print "I got message",x
Run Code Online (Sandbox Code Playgroud)
客户端做:
import redis
r = redis.Redis() # Init
r.publish('mychannel',mymessage)
Run Code Online (Sandbox Code Playgroud)
"messages"是字符串(任何大小).如果你需要传递复杂的数据结构,我喜欢使用json.loads和json.dumps来转换python dicts/arrays和字符串 - "pickle"可能是更好的方法来进行python-to-python通信,尽管JSON意味着"另一面"可以写成任何东西.
现在Redis还有十亿件其他的东西 - 而且它们本身就是一样的简单.
| 归档时间: |
|
| 查看次数: |
6802 次 |
| 最近记录: |