Зависимость и взаимодействие служб в Twisted Python

работая над Twisted, мне было интересно, есть ли:

  1. способ явно определять зависимости сервисов (например, для того, чтобы начать обслуживание B, прежде чем мне нужно запустить службу A)
  2. «питонический» способ передачи двух сервисов (например, информация о B с A, A может управлять исполнением B)

благодаря

Взгляните на Twisted Application Documentation . Похоже, вы хотите создать MultiService каждый со своей собственной реализацией под-службы. То, что вы делаете, – это определить ряд сервисов, внедрить stopService startService и stopService и упорядочить службы в иерархии дерева (через setServiceParent ), чтобы определить произвольные setServiceParent на запуск и завершение работы.

Если вас больше интересует координация распределенных сервисов, то это немного сложнее. Это то, на что Erlang превосходит, хотя, если вы не прочь использовать систему, такую ​​как Zookeeper, которая может быть решением.

Что касается вашего последнего момента, существует множество способов общения с службами. Вы можете использовать что-то вроде Perspective Broker для обмена объектами или идти на что-то более тяжелое и обобщенное, например, RabbitMQ