擅长:python、mysql、java
<p>如果您关闭工作线程,则在任务完成后,它将不再重新排队。在</p>
<pre><code>@task_postrun.connect(sender=add)
def shutdown(*args, **kwargs):
app.control.broadcast('shutdown')
</code></pre>
<p>这将在任务完成后正常关闭工作线程。在</p>
^{pr2}$
<p>注意:广播将关闭所有工人。如果要关闭特定的worker,请使用名称启动worker</p>
<pre><code>celery -A celeryapp worker -n self_killing concurrency=1 pool=solo
</code></pre>
<p>现在可以用destination参数关闭它。在</p>
<pre><code>app.control.broadcast('shutdown', destination=['celery@self_killing'])
</code></pre>