擅长:python、mysql、java
<p>您可以使用<a href="http://docs.celeryproject.org/en/latest/userguide/canvas.html#chords" rel="noreferrer">chord</a>,方法是在末尾添加一个假任务,该任务将在发送任务的时间传递,并返回当前时间与执行时传递的时间之间的差异。</p>
<pre><code>import celery
import datetime
from celery import chord
@celery.task
def dummy_task(res=None, start_time=None):
print datetime.datetime.now() - start_time
def send_my_task():
chord(my_task.s(), dummy_task.s(start_time=datetime.datetime.now()).delay()
</code></pre>
<p><code>send_my_task</code>发送要分析的任务,同时发送一个<code>dummy_task</code>,打印任务所用的时间(或多或少)。如果您想要更精确的数字,我建议将开始时间直接传递给您的任务,并使用<a href="http://docs.celeryproject.org/en/latest/userguide/signals.html#signals" rel="noreferrer">signals</a>。</p>