Я хочу знать, есть ли способ отслеживать, завершается ли задача или нет, как только она выполняется с использованием сельдерея python. У меня есть событие, которое я хочу запустить на основе результатов определенной задачи.
Есть ли способ получить уведомление, как только определенная задача с определенным идентификатором задачи будет успешной или неудачной, используя Celery для Python?
Ответы (1)
Вы можете запустить свою задачу как сельдерей @shared_task
с блоком try except
внутри:
@shared_task
def my_task(input1, input2, ...):
Setting up...
try:
Do stuff
fire_success_event() <- Your success event
except Exception:
The above stuff failed
fire_fail_event() <- your fail event
return 1 <- fail
return 0 <- success
Удачи :)
person
John Moutafis
schedule
07.04.2017
Спасибо, но я хотел бы знать, была ли задача
my_task
успешной или неудачной. Точнее, я хочу получать уведомления вроде прослушивателя, который просто ждет, когда задача завершится успешно или неудачно, а затем действовать соответствующим образом.
- person KudzieChase; 07.04.2017
Затем вместо событий используйте оператор возврата (обычно 0: успех, 1: неудача). я отредактирую свой ответ
- person John Moutafis; 07.04.2017
Когда я это делаю, я, кажется, продолжаю получать отказ, поскольку задача может быть отложена в тот момент, когда я проверяю, что она возвращает. Вернитесь к моему предыдущему комментарию
- person KudzieChase; 07.04.2017
Вот почему я изначально предлагал запускать ваши события из задачи celery!
- person John Moutafis; 07.04.2017
Полезно знать дружище :)
- person John Moutafis; 07.04.2017