簡體   English   中英

芹菜定期任務未在 Django 中運行

[英]Celery Periodic Tasks not running in Django

文件結構

proj/proj/
         celery.py
         (and other files)
    /sitesettings/
         tasks.py
         (and other files)

芹菜.py

app = Celery('mooncake',broker_url = 'amqp://')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()

站點設置/任務.py

from __future__ import absolute_import, unicode_literals
from comma.models import Post
from mooncake.celery import app

app.conf.beat_schedule = {
'every-5-seconds': {
    'task': 'sitesettings.tasks.statisticsTag',
    'schedule': 5.0,
    'args': ()
},
}

@app.task
def statisticsTag():
    print(Post.objects.all()[0])

並運行它

celery -A proj beat -l info

把它拿出來

[2019-02-22 18:21:08,346: INFO/MainProcess] Scheduler: Sending due task every-5-seconds (sitesettings.tasks.statisticsTag)

但沒有進一步的輸出。 我曾經嘗試在 proj/celery.py 中編寫它,但它無法運行,因為我必須從另一個應用程序導入,它以“應用程序未加載”錯誤退出。 所以我該怎么做?

您正在調用以啟動 celery celery -A proj beat -l info的命令正在啟動 celery 的節拍調度程序實例,該實例將到期任務發送給工作程序實例。

您還需要啟動一個工作服務器來執行這些應有的任務。 您可以使用命令celery -A proj worker -l info啟動 celery worker。 這需要您的調度程序運行的同時運行。

或者,您可以使用嵌入式節拍調度程序celery -A proj worker -B -l info運行一個工作程序,但不建議將其用於生產用途。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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