[英]Django + celery - why my periodic task in not running?
我正在使用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'
},
}
有更多的芹菜設置,但我想這兩個與這個問題最相關。
任務:
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
執行任務。
要定期執行任務,你必須開始celery beat
和celery worker
。
python manage.py celery beat
python manage.py celery worker
也安裝芹菜。 然后不要用manage.py運行它。 像這樣運行:
celery -A your_app_name worker -l info -B -E
所以沒有python manage.py
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.