Асинхронное порождение процессов: вопрос дизайна - Celery или Twisted

Все: Я ищу ввод / руководство / и дизайнерские идеи. Моя цель - найти простой, но надежный способ получить полезную нагрузку XML из HTTP POST (с этой частью проблем нет), проанализировать ее и асинхронно создать относительно долгоживущий процесс.

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

Мне очень нравится стек Celery / Django для этого использования: он очень интуитивно понятен и имеет все встроенные фреймворки для выполнения именно того, что мне нужно. Я начал идти по этому пути с усердием, но вскоре обнаружил, что на моем маленьком облачном сервере с 512 МБ ОЗУ было всего 100 МБ свободной памяти, и я начал чувствовать, что меня ждут проблемы, когда я начал работать со всеми своими процессами, работающими на полную мощность. Кроме того, у него есть несколько движущихся частей: RabbitMQ, MySQL, cerleryd, ligthttpd и контейнер django.

Я могу полностью увеличить размер своего сервера, но я надеюсь свести свои затраты к минимуму на этом раннем этапе этого проекта.

В качестве альтернативы я рассматриваю возможность использования twisted для управления процессами, а также перспективного брокера для удаленных систем, если они понадобятся. Но, по крайней мере, для меня, пока витая - это здорово, Я чувствую, что подписываюсь на многое, идущее по этому пути: написание протоколов, управление обратными вызовами, отслеживание состояний заданий и т. Д. Преимущества здесь довольно очевидны - отличная производительность, гораздо меньше движущихся частей и меньший объем памяти. (примечание: мне нужно проверить часть памяти). В связи с этим я сильно склоняюсь к Python - для меня это намного приятнее, чем альтернативы :)

Я был бы очень признателен за любой взгляд на это. Я беспокоюсь о том, чтобы начать что-то не по тому пути, и повторение этого позже с производственным трафиком будет болезненным.

-Matt

6
задан Taryn 12 June 2012 в 17:00
поделиться