2024-10-04 01:33:22 发布
网友
有没有一种简单的方法来衡量一项芹菜任务被处理并成功完成所需的时间?有一个similar question,但第一个答案很难看,不幸的是,信号并没有像第二个答案所建议的那样为我召唤。在
flowerui有一个Runtime列,但它的API不允许获取批任务。在
Runtime
创建任务时,存储{task}id:start_time}的dict
我不知道你是怎么得到结果的,但是假设你做的是:
for task in tasks: result = task.get()
您可以将其更改为:
然后计算出你的长度
也许有更好的办法,但我正要出去过年。在
编辑:您可能需要处理已检索到的任务
任务事件可用于获取任务的运行时持续时间。有关详细信息,请参阅此link。“任务已发送”、“任务已接收”、“任务已启动”、“任务成功”、“任务失败”、“任务已拒绝”、“任务已吊销”、“任务重试”是celery支持的任务事件。为了度量任务持续时间,可以使用“task succeeded”事件。请在下面找到代码片段。在
from celery import Celery redis = Redis(host='workerdb', port=6379, db=0) def my_monitor(): app = Celery('vwadaptor', broker='redis://workerdb:6379/0',backend='redis://workerdb:6379/0') state = app.events.State() def announce_task_succeeded(event): state.event(event) task = state.tasks.get(event['uuid']) print "task runtime: ", task.runtime with app.connection() as connection: recv = app.events.Receiver(connection, handlers={ 'task-succeeded': announce_task_succeeded, }) recv.capture(limit=None, timeout=None, wakeup=True) my_monitor()
创建任务时,存储{task}id:start_time}的dict
我不知道你是怎么得到结果的,但是假设你做的是:
您可以将其更改为:
^{pr2}$然后计算出你的长度
也许有更好的办法,但我正要出去过年。在
编辑:您可能需要处理已检索到的任务
任务事件可用于获取任务的运行时持续时间。有关详细信息,请参阅此link。“任务已发送”、“任务已接收”、“任务已启动”、“任务成功”、“任务失败”、“任务已拒绝”、“任务已吊销”、“任务重试”是celery支持的任务事件。为了度量任务持续时间,可以使用“task succeeded”事件。请在下面找到代码片段。在
相关问题 更多 >
编程相关推荐