2014-01-14 4 views
0

Я пытался получить время ожидания заданий, связанных с сельдерием. Насколько я знаю, я могу сделать это через поток событий, опубликованный работниками Сельдерей. В любопытстве, почему простая временная метка не встроена в поставленную задачу? Связано ли это с разработкой распределенной системы?Почему сельдерей не встраивает временную метку в сообщение в очереди?

Примечание: сельдерей == 3.0.12

ответ

2

Вы не можете полагаться на физическое время стены в распределенных системах, так такое поле не было бы очень полезно.

С потоками событий это отличается от временных меток task-started и task-succeeded от одного и того же источника синхронизации.

Тем не менее, бывают случаи, когда приближенное значение может быть полезно, так что вы можете добавить эту информации самостоятельно:

add.apply_async((4, 4), headers={'time_sent': time.time()}) 

Вы имеете доступ к заголовкам сообщений в задаче (но учтите, что это требует сельдерея 3.1):

+0

Фактически я создаю пользовательскую метку AWS CloudWatch, которая контролирует время ожидания задач в очереди. Итак, добавить заголовок, как вы упомянули в ответе? – mrkschan

+0

Вы можете это сделать, или вы можете собирать информацию с помощью специального монитора событий (Userguide -> Monitoring) – asksol

Смежные вопросы