簡體   English   中英

Django +芹菜 - 為什么我的周期性任務沒有運行?

[英]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 beatcelery 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM