【问题标题】:celery beat doesn't work properly芹菜节拍不能正常工作
【发布时间】:2013-06-23 18:17:23
【问题描述】:

当我为 celery beat 运行此命令时。

[2013-06-27 02:17:05,936: INFO/MainProcess] Celerybeat:开始...

[2013-06-27 02:17:05,937: INFO/MainProcess] 写入条目...

[2013-06-27 02:17:08,711:INFO/MainProcess] DatabaseScheduler:计划已更改。

[2013-06-27 02:17:08,712: INFO/MainProcess] 写入条目...

它停留在这个结果上。但在我的 settings.py 中,我已经配置了 CELERYBEAT_SCHEDULE。

CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"

from datetime import timedelta

CELERYBEAT_SCHEDULE = {
    'add-every-30-seconds': {
    'task': 'celerytest.tasks.add',
    'schedule': timedelta(seconds=30),
    'args': (16, 16)
    },

    'add-every-10-seconds': {
    'task': 'celerytest.tasks.minus',
    'schedule': timedelta(seconds=10),
    'args': (20, 16)
    },

}

我的芹菜节拍有什么问题?

【问题讨论】:

    标签: celery django-celery celerybeat


    【解决方案1】:

    celery beat 命令启动celery scheduler。此过程会安排任务并定期将它们放入队列中。它不执行任务。

    你需要启动celery beat celery worker(我猜你正在使用django-celery):

    python manage.py celery beat
    python manage.py celery worker
    

    或者简单地说:

    python manage.py celery worker --beat
    

    【讨论】:

    • 为什么 celery beat 只设置了@periodic_task(run_every=crontab(day_of_month='1')) 却一直在发送任务?
    • 如果你使用的是DatabaseScheduler,你需要清理你的数据库,否则你可以删除celerybeat-schedule文件
    • 谢谢!顺便说一句,我可以使用 celery 定期任务来备份我的数据库吗?
    • @user2357067,是的,你可以。但是你不觉得cron + bash script 更容易吗?
    • 我不知道,因为我都没有尝试过。您是否建议使用cron + bash script 更好更容易?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 2020-01-23
    • 2015-05-13
    • 2015-05-11
    • 1970-01-01
    • 2018-09-08
    • 2018-04-05
    相关资源
    最近更新 更多