Celery не запускается, несмотря на правильную настройку с использованием Django, Celery 5+ и Python 3.12+
Несмотря на то, что исходная конфигурация кажется правильной, задачи Celery не выполняются. Система ведения журнала не показывает никаких ошибок. Это новая настройка Celery версии 5+, работающая на Python 3.12+. Добавлена полная конфигурация на стороне сервера. Все необходимые пакеты и зависимости установлены, а само приложение не выдает никаких ошибок.
В чем может быть причина того, что тестовое задание Celery не выполняется каждую минуту по расписанию в соответствии с интервалом, указанным в settings.py?
tasks.py
from celery import shared_task
from datetime import datetime
from .models import CeleLog
@shared_task
def get_all_weather_data():
now = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
CeleLog.objects.create(content=f"Current time: {now}")
print(f"Logged time: {now}")
settings.py
CELERY_BROKER_URL = 'amqp://localhost'
from celery.schedules import crontab
CELERY_BEAT_SCHEDULE = {
'log-every-minute': {
'task': 'company_dashboard.tasks.get_all_weather_data', # <- ścieżka do funkcji
'schedule': crontab(minute='*/1'),
},
}
celery.py - проект
import os
from celery import Celery
from django.conf import settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app_rama.settings')
app = Celery('app_rama')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
инициализировать.py - проект
from .celery import app as celery_app
приложение-celery-worker.conf
[program:app-celery-worker]
command=/home/app/bin/celery -A app_rama worker -l INFO
directory=/home/app/app
user=app
numprocs=1
stdout_logfile=/home/app/logs/app-rama-worker.log
stderr_logfile=/home/app/logs/app-rama-worker.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs=600
killasgroup=true
priority=998
приложение-celery-beat.conf
[program:app-celery-beat]
command=/home/app/bin/celery -A app_rama beat -l INFO
directory=/home/app/app
user=app
numprocs=1
stdout_logfile=/home/app/logs/app-rama-worker.log
stderr_logfile=/home/app/logs/app-rama-worker.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs=600
killasgroup=true
priority=998
И я бегу: sudo supervisorctl перечитайте sudo supervisorctl обновите sudo service nginx перезапустите sudo supervisorctl перезапустите приложение sudo supervisorctl запустите приложение-celery-worker sudo supervisorctl запустите приложение-celery-beat
Я пытаюсь решить эту проблему уже несколько часов. В журналах не отображается никаких ошибок, и конфигурация, похоже, была правильной. Я подозреваю, что проблема может быть связана с тем, как запускается Celery. Я не вижу никаких тестовых заданий или моделей, выполняющихся в журналах каждую минуту, так что, возможно, я неправильно запускаю новую версию Celery версии 5 в settings.py? Я был бы очень признателен за любую помощь.