芹菜如何终止并重新开始任务

时间:2013-09-03 21:54:27

标签: python celery

我想用芹菜做这样的事情: 1.我发送消息启动任务,任务正在启动 2.如果在任务中某些条件为真,则任务应终止(取消)并“返回”回到其他工作人员可以执行的消息队列中。

现在我不知道如何从worker函数终止任务。我试图在这个被称为函数中做类似的事情:

if condition == true:
    revoke(current_task.request.id, terminate=True)

并在应用程序中发送消息时,我试图以这种方式连接信号'task_revoke':

@task_revoked.connect
def do_something_when_revoke(terminated, signum, expired):
    do_something_here...

但它不适合我。所以也许你可以帮助我,告诉我我做错了什么,或者做出类似的事情有什么不同的方式:) 提前致谢

1 个答案:

答案 0 :(得分:0)

实现这一目标的一种更简单的方法可能是在任务本身内实现该逻辑:

  • 您不必撤销任务,只是不要做任何事情
  • 您的任务只需提交一个新的,更新的任务到队列