【发布时间】:2016-10-25 23:17:29
【问题描述】:
我正在使用 django + celery 进行定期任务。我的项目有 django-celery==3.1.17,使用的代理是 Redis,它正在工作。
在我的设置文件中:
CELERYBEAT_SCHEDULE={
'delivery_send': {
'task': 'delivery.tasks.DeliverySendTask',
'schedule': timedelta(minutes=1),
'args': [],
},
}
CELERY_ROUTES = {
'delivery.tasks.DeliverySendTask': {
'queue': 'periodic_tasks',
'routing_key': 'periodic_tasks'
},
}
还有更多的 celery 设置,但我想这两个与这个问题最相关。
任务:
class DeliverySendTask(Task):
def run(self, *args, **kwargs):
logger.info('executing task!')
from .models import Dispatch
Dispatch.objects.all().delete()
然后我运行python manage.py celery beat 并在控制台中查看
[2016-06-23 14:32:01,230: INFO/MainProcess] Scheduler: Sending due task delivery_send (delivery.tasks.DeliverySendTask)
但删除从未真正执行。我错过了什么?
感谢您的帮助。
【问题讨论】:
-
你在运行 celery worker
python manage.py celery worker -l info? -
@RaviKumar 现在任务已执行。我缺少的是正确启动工人?
标签: python django django-celery