Служба зависимости и взаимодействия в Twisted Python - PullRequest
1 голос
/ 13 марта 2011

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

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

Спасибо

1 Ответ

3 голосов
/ 19 марта 2011

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

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

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

...