Длительный процесс, опрос, организация очередей для Python. Что лучше всего использовать? - PullRequest
1 голос
/ 20 апреля 2010

Не стесняйтесь закрывать и / или перенаправлять, если об этом спросили, но вот моя ситуация:

У меня есть приложение, которое потребует выполнения небольшой работы (опрос веб-службы до тех пор, пока что-то не будет сделано, затем анализ XML-файла стоимостью около 1 МБ и помещение его в базу данных). Я хочу иметь простой механизм асинхронной очереди, который будет запрашивать работу в очереди, выполнять единицы работы, которые необходимо выполнить, и иметь гибкость, позволяющую создавать несколько рабочих процессов, чтобы эти единицы работы могли быть сделано параллельно. (Бонус, если есть какая-то структура событий, которую я тоже должен слушать, когда работа будет завершена.)

Я уверен, что есть вещи, чтобы сделать это. Я описываю Twisted? Я просмотрел документацию, я просто не уверен, как именно мои проблемы отображаются в их фреймворке, но я не потратил много времени на это. Стоит ли просто смотреть на многопроцессорные библиотеки в Python? Что-то еще?

Ответы [ 2 ]

3 голосов
/ 20 апреля 2010

Там сельдерей .

Вы можете разбить его на 2 разных Tasks: одну для опроса веб-службы и поставить в очередь вторую задачу, которая будет отвечать за анализ XML и его сохранение.

0 голосов
/ 20 апреля 2010

Эта проблема звучит как довольно хороший кандидат на встроенный (2.6+ в любом случае) многопроцессорный модуль Python: http://docs.python.org/library/multiprocessing.html

Простым решением будет создание пула процессов и использование вашей основной программы для опроса фрагментов XML. Получив их, он может передать их в пул для анализа / сохранения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...