簡體   English   中英

Django Celery Periodic 任務未在提到的 crontab 上運行

[英]Django Celery Periodic task is not running on mentioned crontab

我正在使用以下軟件包。

celery==5.1.2
Django==3.1

我有 2 個定期 celery 任務,其中我希望第一個任務每 15 分鍾運行一次,第二個任務每 20 分鍾運行一次。 但問題是第一個任務按時運行,而第二個任務沒有運行。

雖然我在控制台上收到一條消息:

Scheduler: Sending due task <task_name> (<task_name>)

但是該函數內的日志沒有出現在控制台上。

請找到以下文件,

芹菜.py

from celery import Celery, Task
app = Celery('settings')
...

class PeriodicTask(Task):
    @classmethod
    def on_bound(cls, app):
        app.conf.beat_schedule[cls.name] = {
            "schedule": cls.run_every,
            "task": cls.name,
            "args": cls.args if hasattr(cls, "args") else (),
            "kwargs": cls.kwargs if hasattr(cls, "kwargs") else {},
            "options": cls.options if hasattr(cls, "options") else {}
        }

任務.py

from celery.schedules import crontab
from settings.celery import app, PeriodicTask
...

@app.task(
    base=PeriodicTask,
    run_every=crontab(minute='*/15'),
    name='task1',
    options={'queue': 'queue_name'}
)
def task1():
    logger.info("task1 called")

@app.task(
    base=PeriodicTask,
    run_every=crontab(minute='*/20'),
    name='task2'
)
def task2():
    logger.info("task2 called")

請幫我在這里找到錯誤。 謝謝!

您是否啟用了 celery 的登錄功能。 文檔說,要進行日志記錄,您必須啟用日志記錄。 這是文檔celery 文檔的鏈接,請參閱日志記錄部分。

暫無
暫無

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

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