Витая или сельдерей? Что подходит для моего приложения с большим количеством вызовов SOAP?

Я пишу приложение Python, которое требует как параллелизма, так и асинхронности. У меня было несколько рекомендаций для Twisted и Celery,но у меня возникли проблемы с определением лучшего выбора для этого приложения (у меня нет опыта работы с ним).

Приложение (которое не является веб-приложением) в основном сосредоточено на выполнении вызовов SOAP к различным сторонним API. Чтобы обработать данный фрагмент данных, мне нужно будет последовательно вызывать несколько API. И я хотел бы иметь пул «рабочих» для каждого из этих API, чтобы я мог делать более одного вызова за раз для каждого API. Ничто в этом не должно сильно загружать процессор.

Точнее, внешний процесс добавит новое «Сообщение» в базу данных этого приложения. Мне понадобится работа, которая отслеживает новые сообщения, а затем проталкивает их через Процесс. Процесс будет содержать 4-5 шагов, которые должны выполняться по порядку, но могут происходить полностью асинхронно. Каждый шаг будет воспринимать сообщение и действовать в соответствии с ним, обычно добавляя детали к сообщению. Для каждого последующего шага требуются выходные данные предыдущего шага. Для большинства этих шагов работа сосредоточена на вызове стороннего API, обычно с помощью клиента SOAP, синтаксическом анализе ответа и обновлении сообщения. В некоторых случаях будет создаваться двоичный файл (сложнее обработать, если это фактор). В конечном итоге, как только последний шаг будет завершен, мне нужно будет обновить флаг в базе данных, чтобы указать, что для этого сообщения завершен весь процесс.

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

Является ли здесь Celery или Twisted более подходящей средой? Если они оба решат проблему адекватно, есть ли плюсы / минусы в использовании одного по сравнению с другим? Есть ли что-то еще, что я должен рассмотреть вместо этого?

29
задан Adam Levy 15 June 2011 в 13:31
поделиться