@topharley

Как подбирать недообработанные длительные задания?

Микросервис запущен в кубере с несколькими экземплярами (репликами). Задания к нему длительные (например 5 минут). Если в кубере происходит autoscaling на уменьшение, либо идет деплой новой версии, то работающие экземпляры завершаются. Как сделать так, чтобы недообработанные длительные задания, которые были в обработке у убитых экземпляров не зависли?
  • Вопрос задан
  • 20 просмотров
Решения вопроса 1
Необходимо, чтобы приложения могли обрабатывать сигнал SIGTERM и по окончанию обработки задачи могли завершиться нормально.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
vabka
@vabka
Токсичный шарпист
Варианта два:
1. Не завершать процесс, пока эти задачи не завершены. Новые задачу в работу не брать.
2. Предусмотреть, что задача может быть прервана на середине. В случае непредвиденного завершения - помечать как-нибудь и запускать с той точки, на которой остановились.
Ещё можно периодически проверять зависшие задачи и перезапускать их.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы