1

我想用 celery 做这样的事情: 1. 我发送消息来启动任务,任务正在启动 2. 如果在任务中某些条件为真,那么任务应该被终止(取消)并“返回”到其他的消息队列工人可以接受并做到这一点。

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

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...

但这对我不起作用。所以也许你可以帮助我并告诉我我做错了什么或者可能有什么不同的方式来做这样的事情:)提前谢谢

4

1 回答 1

1

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

  • 您不必撤销任务,只是不要在其中做任何事情
  • 你的任务可以提交一个新的、更新的任务到队列
于 2013-09-03T21:57:51.473 回答