Я могу use signals для регистрации времени выполнения задачи, но я хотел бы также регистрировать время в очереди. Возможно ли это с помощью сигналов? Какие сигналы следует использовать?Время регистрации в очереди заданий на сельдерей
1
A
ответ
0
Заданные события могут использоваться для контроля и запуска действия на основе событий задачи. Заданные задачи, задачи, задачи, задачи, преуспевающие задачи, задачи с отказами, отказа от задачи, отмены задачи, повторения задачи, являются задачами , поддерживаемыми в сельдере. Для получения дополнительной информации см. Это link. Чтобы зарегистрировать время ожидания задачи в очереди, запустите задачу, созданную (или добавленную в очередь заданий) время и время запуска задачи, используя соответствующие обработчики событий задачи. Разница в них даст время ожидания задания в очереди. Ниже приведен пример кода python о том, как его реализовать.
from celery import Celery
redis = Redis(host='workerdb', port=6379, db=0)
taskId_startTime = {}
taskId_createTime = {}
def my_monitor():
app = Celery('vwadaptor', broker='redis://workerdb:6379/0',backend='redis://workerdb:6379/0')
state = app.events.State()
def announce_task_received(event):
state.event(event)
task = state.tasks.get(event['uuid'])
taskId_createTime[task.uuid] = task.timestamp
def announce_task_started(event):
state.event(event)
task = state.tasks.get(event['uuid'])
taskId_startTime[task.uuid] = task.timestamp
def announce_task_succeeded(event):
state.event(event)
task = state.tasks.get(event['uuid'])
print "wait time in queue", taskId_startTime[task.uuid] - taskId_createTime[task.uuid]
with app.connection() as connection:
recv = app.events.Receiver(connection, handlers={
'task-received': announce_task_received,
'task-started': announce_task_started,
'task-succeeded': announce_task_succeeded,
})
recv.capture(limit=None, timeout=None, wakeup=True)
my_monitor()
Смежные вопросы
- 1. Очереди с приоритетом сельдерей
- 2. Сельдерей - задачи очереди сыпучие
- 3. jQuery - опрос очереди заданий
- 4. Алгоритмы оптимизации очереди заданий
- 5. Задачи сельдерей, работники и очереди
- 6. Многопоточный менеджер очереди заданий
- 7. Сельдерей: выборочно очистка очереди от задач Python
- 8. сельдерей: запрограммировать задачу очереди на определенную очередь?
- 9. Сельдерей: динамические очереди на уровне объекта
- 10. Почему сельдерей не встраивает временную метку в сообщение в очереди?
- 11. Сигнал окончания заданий в очереди?
- 12. Дизайн очереди заданий на Windows Azure
- 13. Ищет очереди заданий, которые могут выполняться заданиями в заданное время
- 14. Получить список задач в очереди в сельдерей
- 15. Сельдерей Почему задача остается в очереди
- 16. Сельдерей/Django: получить результат выполнения периодических заданий
- 17. сельдерей: получить сообщение в очереди как целое
- 18. Сельдерей: как ограничить количество заданий в очереди и прекратить подачу, когда они полны?
- 19. Как очереди Руфус-планировщик заданий
- 20. реализация очереди заданий для python
- 21. Получение описания очереди заданий PBS
- 22. Как получить список запланированных заданий в очереди заданий?
- 23. ОШИБКА: «filetest.submit» не содержит команд «очереди» - нет заданий в очереди
- 24. Удаление заданий в очереди в Laravel 5
- 25. Что представляет собой повтор в очереди заданий?
- 26. Laravel заданий в очереди тупики с несколькими демонами очереди
- 27. сельдерей: удалить пустые очереди более 5 минут?
- 28. Рамка работает для очереди заданий распределенного планирования для высокого масштаба
- 29. Приоритезация заданий в очереди серверов Sun Grid
- 30. Сельдерей SQS + Дублирование заданий + Тайм-аут видимости SQS