Twisted Python中的服务依赖和交互
问题描述
在做Twisted时,我想知道是否有:
- 显式定义服务依赖关系的方法(例如,为了启动服务B,在我需要启动服务A之前)
- 使两个服务进行通信(例如,B与A共享信息,A可以控制B的执行)的"蟒蛇"方式
谢谢
解决方案
查看Twisted Application Documentation。听起来您似乎想创建一个MultiService
,每个MultiService
都有自己的子服务实现。您要做的是定义许多服务,实现startService
和stopService
,并将您的服务安排在树形层次结构中(通过setServiceParent
),以确定任意的启动和关闭顺序。
如果您对分布式服务协调更感兴趣,那么这会稍微困难一些。这是Erlang
擅长的,但如果您不反对使用Zookeeper这样的系统,这可能是一个解决方案。
关于您的最后一点,服务有多种通信方式。您可以使用像Perspective Broker这样的东西进行对象通信,也可以使用像RabbitMQ
这样更繁重和通用的东西相关文章