在`settings.py`中删除celery调度程序的定期任务不会删除实际任务

时间:2015-09-21 03:31:35

标签: python django rabbitmq celery django-celery

有没有办法在Django Celery中删除定期任务或删除缓存?注释掉代码或删除调度任务的相应代码段不会删除实际任务。

""" Commenting out, or deleting both entries from the code base doesn't do anything
CELERYBEAT_SCHEDULE = {
    'add-every-30-seconds': {
        'task': 'tasks.add',
        'schedule': timedelta(seconds=2),
        'args': (2, 2)
    },
    'add-every-30-seconds2': {
        'task': 'tasks.add',
        'schedule': timedelta(seconds=5),
        'args': (2, 6)
    },
}
"""

我尝试了celery -A my_proj purge,但周期性任务仍然存在。我使用RabbitMQ作为我的经纪人

BROKER_URL = "amqp://guest:guest@localhost:5672//"

CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend'

CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'

2 个答案:

答案 0 :(得分:0)

来自celery guide to periodic taskscelery management guide

检查活动:列出活动任务

$ celery -A proj inspect active

检查预定:列出预定的ETA任务

$ celery -A proj inspect scheduled

control disable_events:禁用事件

$ celery -A proj control disable_events

或者,尝试管理指南中提供的GUI管理系统。

编辑:清除只会删除邮件,而不是任务本身。

答案 1 :(得分:0)

删除djcelery管理界面中的任务,将其从数据库中删除。