Python 如何使用芹菜获得任务的执行时间?

Python 如何使用芹菜获得任务的执行时间?,python,celery,celery-task,Python,Celery,Celery Task,我想获取任何任务的执行时间,假设我有任务id。有没有办法获得执行时间?我知道时间会被芹菜记录下来,但我不想解析日志文件。在类似的行中,是否有一种方法可以获得任务的等待时间,换句话说,从任务被调度到工作节点的时间到它开始执行的时间。基本上,我想捕捉任何任务的整个生命周期。我最初的想法。我有一个定制的调度程序,它将传入的任务调度到各个工作节点。因此,当计划任务时,我在结果后端(redis)中输入任务id。当任务完成时,结果将以任务id前缀“芹菜meta blah”登录到redis。我可以找到这两个输

我想获取任何任务的执行时间,假设我有任务id。有没有办法获得执行时间?我知道时间会被芹菜记录下来,但我不想解析日志文件。在类似的行中,是否有一种方法可以获得任务的等待时间,换句话说,从任务被调度到工作节点的时间到它开始执行的时间。基本上,我想捕捉任何任务的整个生命周期。

我最初的想法。我有一个定制的调度程序,它将传入的任务调度到各个工作节点。因此,当计划任务时,我在结果后端(redis)中输入任务id。当任务完成时,结果将以任务id前缀“芹菜meta blah”登录到redis。我可以找到这两个输入时间戳之间的差异。但这将涉及由于msg传输而导致的开销。所以,想想其他的方法。我可以通过事件来实现这一点。你能展示一些代码来说明你是如何实现这一点的吗?尽管这不是一个有效的解决方案。继续侦听task_开始和task_成功事件。每当看到task_start事件时,请使用时间戳登录到某个数据库。当您看到相同的任务成功时,向DB添加另一个具有当前时间戳的条目。两者之间的差异给出了任务所花费的总时间。