У меня есть работник Celery, который нужно развернуть в ядре приложения Google, возможно ли это? Я намерен использовать одно приложение для своего основного приложения Django, одно приложение для работника Celery и один сервис Rabbitmq (оно поддерживается облаком Google).
Как развернуть воркер Celery в движке приложений Google
Ответы:
Вместо использования очереди задач Celery я бы предложил использовать App Engine Очередь задач.
Вы можете использовать очереди отправки:
Очереди push-уведомлений запускают задачи, доставляя HTTP-запросы рабочим службам App Engine. Они отправляют эти запросы с надежной постоянной скоростью и гарантируют надежное выполнение задач. Поскольку вы можете контролировать скорость, с которой задачи отправляются из очереди, вы можете контролировать масштабирование рабочих процессов и, следовательно, свои затраты.
Очереди pull вообще не отправляют задачи. Они зависят от других рабочих служб, чтобы «арендовать» задачи из очереди по собственной инициативе. Очереди по запросу дают вам больше возможностей и гибкости в отношении того, когда и где обрабатываются задачи, но они также требуют от вас большего управления процессами. Когда задача сдается в аренду, арендодатель объявляет крайний срок. К тому времени, когда наступит крайний срок, работник должен либо завершить задачу и удалить ее, либо служба очереди задач позволит другому работнику сдать ее в аренду.