【发布时间】:2020-12-26 19:35:19
【问题描述】:
我正在使用 celery 在 django 中运行一些后台任务。
Celery 工人在前 45 分钟内正确执行任务。 之后不会执行任务。
我正在使用 Django==2.2.13 和 Celery==4.4.7
这就是我启动芹菜工人和击败的方式。
celery worker -A app_name --loglevel=info
celery beat -A app_name --loglevel=info
celery 设置文件为:
CELERY_ACKS_LATE = True
CELERYD_PREFETCH_MULTIPLIER = 1
CELERY_BROKER_URL = 'redis://localhost:6379'
CELERY_RESULT_BACKEND = 'redis://localhost:6379'
celery.py
from celery import Celery
from celery.schedules import crontab
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app_name.settings')
app = Celery('app_name')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
app.conf.task_default_priority = 5
app.conf.beat_schedule = {
'parse_sources_manager_async': {
'task': 'parse_sources_manager_async',
'schedule': crontab(minute=0),
}
}
有没有办法让它工作,任何帮助将不胜感激,在此先感谢。
【问题讨论】:
-
CELERY_BEAT_SCHEDULE的值是多少? -
函数执行需要多长时间?
-
最初它会在一分钟内工作。后来它根本不起作用。
-
要让它再次工作,我必须停止 celery worker,清除所有现有任务并重新启动。
-
我认为任务是重叠的。将
minute设置为大于执行时间的值。
标签: python-3.x django celery