Подходит ли Celery для использования во многих небольших распределенных системах?

Я пишу программное обеспечение, которое будет управлять несколькими сотнями небольших систем в «полевых условиях» через прерывистый ] 3G (или аналогичное) соединение.

Домашняя база должна будет отправлять задания в полевые системы (например, «сообщить о своем статусе», «обновить программное обеспечение» и т. Д.), А также в системы в поле должно будет отправлять задания обратно на сервер (например, «обнаружен сбой», «Вот некоторые данные» и т. Д.)

Я потратил некоторое время на изучение Celery , и он кажется идеально подходящим: celeryd работа на домашней базе может собирать задания для систем в поле, celeryd , работающий в полевых системах, может собирать задания для сервера, и этими заданиями можно обмениваться по мере доступности клиентов.

Итак, Подходит ли сельдерей для решения этой проблемы? В частности:

  • Большинство задач будет направлено отдельному исполнителю (например, «отправить задание 'get_status' в 'system51'») - будет ли это проблемой?
  • Будет ли он корректно обрабатывать неблагоприятные условия сети ( например, умирают соединения)?
  • Какие функции доступны, только если RabbitMQ используется в качестве серверной части? (Я' я бы предпочел не запускать RabbitMQ в полевых системах)
  • Есть ли еще причина, по которой Celery может усложнить мою жизнь, если я буду использовать его так, как я описал?

Спасибо!

(было бы правильно предположить, что Сельдерей - это излишество, но есть и другие причины, по которым он облегчит мне жизнь, поэтому я хотел бы это рассмотреть)

6
задан David Wolever 3 October 2010 в 00:13
поделиться