Контекст:
В настоящее время у меня есть приложение Python Flask, которое при получении запроса автоматически создает задание Kubernetes для запуска процесса. После завершения задания результаты отправляются обратно в указанную конечную точку c (никогда не изменяется). В зависимости от специфики запроса этот процесс может сильно различаться по продолжительности (времени) и требованиям к ресурсам. Причина, по которой я использую для этого Jobs, связана с их способностью перезапускаться в случае сбоя.
Проблема:
Даже при разрешении максимального количества перезапусков будут случаи, когда процесс будет ошибаться. Я хочу реализовать что-то вроде:
- Если задание завершается успешно, ничего не делайте.
- Если задание завершается неудачно после достижения максимального числа повторных попыток, запустите
foo()
foo()
- очень простая функция Python, которая отправляет HTTP-запрос с параметрами запроса, в результате которого задание не было успешно завершено. Это не обязательно должна быть функция Python, но она предпочтительна.
Примечание : я заключаю все в общее исключение ошибки в функции python, которую необходимо выполнить заданию. выполнить, однако в некоторых случаях задание может завершиться ошибкой из-за нехватки памяти.