@Angelex

Что не так в настройке Celery, не работают периодические задачи?

На локальной машине запускались периодические задачи, как начал переносить на сервер, они отвалились. Возможно что-то из-за супервизора. Сам celery работает, асинхронные задачи выполняются, но scheduler не выполняет регулярные задачи, пробовал запускать и отдельным воркером.

Вот скрипт запуска celery: start_celery.sh
#!/bin/bash
source /home/www/proj/core/venv/bin/activate
exec celery -A proj worker -l INFO -f /home/www/proj/core/logs/celery.tmp.log
 -B --scheduler django_celery_beat.schedulers:DatabaseScheduler


Вот конфигурация супервизора:
[program:celery]
command=/home/www/proj/core/bin/start_celery.sh
directory=/home/www/proj/core
user=www
process_name=%(program_name)s
numprocs=1
autostart=true
autorestart=true
redirect_stderr=true


Вот функция установки периодических задач, она выполняется при запуске:
@celery_app.on_after_finalize.connect
def setup_periodic_tasks(sender: celery_app, **kwargs):
	# Устанавливает регулярные задачи
	print("setup_periodic_tasks()")
	sender.add_periodic_task(
		crontab(hour=10),
		remind_notify.s()
	)
	sender.add_periodic_task(
		crontab(minute=1),
		check_mailings.s()
		)


Но периодические задачи не выполняются, ошибок нет в логах нет, в логах супервизора тоже чисто. При вызове celery -A proj inspect scheduled получаю:
->  celery@Fourier: OK
    - empty -

1 node online.


Второй день вожусь, не могу понять что не так, видимо упустил какую-то мелочь, может кто-то сталкивался с подобным косяком?
  • Вопрос задан
  • 252 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы