Twisted Python中的服务依赖和交互

2022-04-18 00:00:00 python service twisted

问题描述

在做Twisted时,我想知道是否有:

  1. 显式定义服务依赖关系的方法(例如,为了启动服务B,在我需要启动服务A之前)
  2. 使两个服务进行通信(例如,B与A共享信息,A可以控制B的执行)的"蟒蛇"方式

谢谢


解决方案

查看Twisted Application Documentation。听起来您似乎想创建一个MultiService,每个MultiService都有自己的子服务实现。您要做的是定义许多服务,实现startServicestopService,并将您的服务安排在树形层次结构中(通过setServiceParent),以确定任意的启动和关闭顺序。

如果您对分布式服务协调更感兴趣,那么这会稍微困难一些。这是Erlang擅长的,但如果您不反对使用Zookeeper这样的系统,这可能是一个解决方案。

关于您的最后一点,服务有多种通信方式。您可以使用像Perspective Broker这样的东西进行对象通信,也可以使用像RabbitMQ

这样更繁重和通用的东西

相关文章