擅长:python、mysql、java
<p>只需获取<code>A</code>所有实例的id列表并停止它们。在</p>
<p>想想这个简单的和弦</p>
<pre><code>from celery import chord
my_chord = chord(a.si() for i in range(300))(b.si())
</code></pre>
<p>现在您可以使用</p>
^{2}$
<p>现在你可以做任何你想做的任务实例。例如,您可以撤消所有的,而不管其当前状态如何。在</p>
<pre><code>from celery.task.control import revoke
for task in my_chord.parent.subtasks:
revoke(task.id, terminate=True)
</code></pre>
<p><code>revoke</code>默认情况下只终止挂起的任务。但是如果您将<code>terminate=True</code>传递给它,它也会杀死正在执行的任务。在</p>
<p>此外,chord的回调函数将在其所有子任务成功执行后被调用。由于您正在取消chord的子任务,因此不会调用回调函数,并且chord任务会导致失败。因此,您必须重试回调任务。在</p>