我正在使用Django的定期芹菜任务。我以前在app / tasks.py文件中有以下任务:
@periodic_task(run_every=timedelta(minutes=2))
def stuff():
...
但是现在这个任务已经从我的app / tasks.py文件中删除了。但是,我一直在芹菜日志中看到这个任务的召唤:
[2013-05-21 07:08:37,963: ERROR/MainProcess] Received unregistered task of type u'app.tasks.stuff'.
似乎我使用的芹菜节拍调度程序不会更新其队列。这是我的project / settings.py文件中定义调度程序的方式:
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
重新启动芹菜工人没有帮助。仅供参考,我使用的是Redis经纪人。
如何清除或更新芹菜节拍队列,以便不将旧任务发送给我的芹菜工人?
答案 0 :(得分:2)
如上所述,此项目不需要使用芹菜,但您需要这样才能在/admin/djcelery/
启用管理界面来管理定期任务。最初不会有任何注册或定期任务。
重新启动节拍并再次检查表格的周期性任务。 Beat会将现有的计划任务添加到该表中,并在设置或装饰器中定义interval或crontab。在那里,您可以删除不需要的任务。
更新:从celery4开始,建议使用此软件包。 https://github.com/celery/django-celery-beat
答案 1 :(得分:-1)
删除最初编写任务的.pyc文件。或者,只需删除项目目录中的所有.pyc文件。
此命令应该有效:
find . -name "*.pyc" -exec rm -rf {} \;