【问题标题】:Django, Celery, RabbitMQ - Tasks are not been executedDjango、Celery、RabbitMQ - 任务未执行
【发布时间】:2024-09-09 21:25:02
【问题描述】:

我已经像这样设置了我的 Django 环境:

INSTALLED_APPS = (
....
    'djcelery',

)

BROKER_URL = "amqp://guest:guest@localhost:5672//"
CELERY_IMPORTS = ('bulksms.tasks', 'premiumsms.tasks', 'reports.tasks')
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"

import djcelery
djcelery.setup_loader()

在 Django 管理员中,我将我想要的任务添加到定期任务中(我可以看到那里的所有任务)以每分钟运行一次以进行测试,但该任务永远不会运行。

Running django then 
python manage.py celeryd -E --loglevel=DEBUG
python manage.py celerycam

在 Djcelery 下的管理站点中,也没有添加任务的选项(不确定它是否曾经存在。)

【问题讨论】:

    标签: django celery django-celery


    【解决方案1】:

    如果你想使用 Celery 运行周期性任务,那么你需要使用任一运行 celerybeat 进程

    python manage.py celery beat
    

    或在工作进程中使用另一个线程

    python manage.py celery worker -E --loglevel=DEBUG -B
    

    请参阅有关启动调度程序的文档http://celery.readthedocs.org/en/latest/userguide/periodic-tasks.html#starting-the-scheduler

    【讨论】:

    • 该死!我知道这是愚蠢的忘记了!谢谢马克