Ситуация такая. Есть сервер (
server1) с
django, субд
mysql и
Celery (+django-celery). Также на данном сервере запущено несколько воркеров.
Одно задание (
task0) стартует по расписанию, делает запрос через django orm, получает данные, разбивает их на отдельные части и отправляет на обработку (
task2) другим воркерам с помощью брокера
rabbitmq. Они получают данные из очереди, делают с данными определенные манипуляции и сохраняют результаты-объекты в бд.
На одном сервере
все работает замечательно, вопрос в следующем.
Если мне понадобится установить воркеры на другой машине (
server2), то им по-сути нужен будет доступ к базе данных, которая на
server1.
Правильно ли я понимаю, что надо будет клонировать весь проект на
server2, поменять айпи дня подключения к бд в
settings.py, и запустить воркеров? Это выглядит все не очень заманчиво, может есть какой-то другой способ?
Читал
это:
If you want to store task results in the Django database then you still need to install the django-celery library for that (alternatively you can use the SQLAlchemy result backend).
Пробовал локально запускать воркеров, но в бд нигде не появлялись результаты выполнения задач.
CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend',
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler',
Пока острой задачи в переезде воркеров на другой сервер не стоит, но интересуюсь на будущее.
Спасибо!