В настоящее время мы создаем только одно событие для каждого идентификатора задания и состояния (см. Здесь ), но возможно, что задание войдет в определенное состояние дважды.
Например, если планировщик считает хост неработоспособным, все задания на этом хосте помечаются как неработающие, но затем, если хост возвращается, задания могут все еще выполняться, поэтому задания снова войдут в состояние выполнения. Последующие развертывания с участием этих заданий завершатся ошибкой, потому что события отключения не будут генерироваться (событие отключения уже существует с того момента, когда узел стал неработоспособным).
Пара вариантов:
@titanous @josephglanville @jvatic мысли?
когда планировщик помечает задания как неработающие, просто остановите их, если они снова появятся, поскольку замещающие задания уже были запущены.
Думаю, это правильный ответ.
В качестве альтернативы можно добавить другое состояние для заданий, которые пропали из-за ухода хоста.
@titanous Не думаю, что добавление нового состояния для заданий на отключенных хостах действительно поможет.
Когда планировщик повторно подключается к хосту, задания которого ранее были помечены как остановленные (или переведены в какое-либо другое состояние, например unknown
), ему все равно необходимо принять решение, просто остановить любые задания, которые все еще выполняются, или попытаться и пометить их как работающие снова (что приведет к дублированию событий up
в контроллере).
Я думаю, нам следует сразу же прекратить работу после повторного подключения.
Флинн не обслуживается, и наша инфраструктура будет закрыта 1 июня 2021 года. Подробности см. В README .
Самый полезный комментарий
В качестве альтернативы можно добавить другое состояние для заданий, которые пропали из-за ухода хоста.