Django 如何摆脱仍在芹菜/RabbitMQ队列中的遗留任务?
我正在运行Django+芹菜+兔子MQ。在修改了一些任务名称之后,我开始出现“unregistered task”keyrors,即使在Django Cellery Beat中从周期任务表中删除了具有此键的任务并重新启动芹菜工人之后也是如此。他们甚至在那以后也不知道Django 如何摆脱仍在芹菜/RabbitMQ队列中的遗留任务?,django,rabbitmq,celery,django-celery,celerybeat,Django,Rabbitmq,Celery,Django Celery,Celerybeat,我正在运行Django+芹菜+兔子MQ。在修改了一些任务名称之后,我开始出现“unregistered task”keyrors,即使在Django Cellery Beat中从周期任务表中删除了具有此键的任务并重新启动芹菜工人之后也是如此。他们甚至在那以后也不知道 如何摆脱它们?要清除最后一个任务,您可以使用它们的旧方法头重新实现它们,但不使用逻辑 例如,如果您删除了方法original,并且现在得到了错误 [ERROR/MainProcess] Received unregistered t
如何摆脱它们?要清除最后一个任务,您可以使用它们的旧方法头重新实现它们,但不使用逻辑 例如,如果您删除了方法
original
,并且现在得到了错误
[ERROR/MainProcess] Received unregistered task of type u'myapp.tasks.original'
只需重新创建原始方法,如下所示:
任务。py
@shared_task
def original():
# keep legacy task header so that it is flushed out of queue
# FIXME: this will be removed in the next release
pass
在每个环境中运行此版本后,将处理所有剩余的任务(不执行任何操作)。确保已将它们从定期任务表中删除,并且不再调用它们。然后,您可以在下次部署之前删除该方法,并且该问题不会再次出现
这仍然是一个解决办法,最好能够这样做