擅长:python、mysql、java
<p>任务事件可用于获取任务的运行时持续时间。有关详细信息,请参阅此<a href="http://docs.celeryproject.org/en/latest/userguide/monitoring.html#task-events" rel="nofollow noreferrer">link</a>。“任务已发送”、“任务已接收”、“任务已启动”、“任务成功”、“任务失败”、“任务已拒绝”、“任务已吊销”、“任务重试”是celery支持的任务事件。为了度量任务持续时间,可以使用“task succeeded”事件。请在下面找到代码片段。在</p>
<pre><code> 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()
</code></pre>