Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 芹菜节拍队列包含过时的任务_Python_Django_Celery_Django Celery_Djcelery - Fatal编程技术网

Python 芹菜节拍队列包含过时的任务

Python 芹菜节拍队列包含过时的任务,python,django,celery,django-celery,djcelery,Python,Django,Celery,Django Celery,Djcelery,我对Django使用周期性芹菜任务。我以前在app/tasks.py文件中有以下任务: @periodic_task(run_every=timedelta(minutes=2)) def stuff(): ... CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler" 但现在此任务已从我的app/tasks.py文件中删除。然而,我一直在芹菜日志中看到这项任务的调用: [2013-05-21 07:08:37,963

我对Django使用周期性芹菜任务。我以前在app/tasks.py文件中有以下任务:

@periodic_task(run_every=timedelta(minutes=2))
def stuff():
  ...
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
但现在此任务已从我的app/tasks.py文件中删除。然而,我一直在芹菜日志中看到这项任务的调用:

[2013-05-21 07:08:37,963: ERROR/MainProcess] Received unregistered task of type u'app.tasks.stuff'.
我使用的芹菜节拍调度程序似乎没有更新其队列。以下是在my project/settings.py文件中定义计划程序的方式:

@periodic_task(run_every=timedelta(minutes=2))
def stuff():
  ...
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
重新启动芹菜工人没有帮助。仅供参考,我使用Redis经纪人


如何清除或更新芹菜节拍队列,使较旧的任务不会发送给芹菜工人?

删除任务最初编写位置的.pyc文件。或者,只需删除项目目录中的所有.pyc文件

此命令应在以下情况下工作:

find . -name "*.pyc" -exec rm -rf {} \;
安装

如前所述,这个项目不需要使用芹菜,但您需要它来启用位于
/admin/djcelery/
的管理界面来管理定期任务。最初不会有注册或定期任务

重新启动节拍并再次检查表格周期任务。Beat会使用设置或装饰器中定义的间隔或crontab将现有的计划任务添加到该表中。在那里,您可以删除不需要的任务


更新:来自celery4,建议使用此软件包

我认为您还必须删除时间表的数据库条目。您可以从django管理员处执行此操作。嗨,Regis,您是否设法解决了此问题。我也有同样的问题@Ngenator-您的解决方案是问题可能在redis服务器中。因为芹菜任务是一个被推送到redis服务器的pickle对象,所以redis一直保存着过时的任务。重新启动redis服务器,或调用任务的清除功能。这不起作用!我也试着删除了赛利节拍。