Проблема состояния задач, когда я использую файл начальной загрузки и выбрасывается исключение - PullRequest
0 голосов
/ 23 мая 2019

Я работаю над Гринвичской РЕЛИЗОВОЙ версией Spring Cloud.

Я создал задачу, связанную с моим сервером конфигурации.

Когда в моей Задаче возникает исключение, в случае, если я использую файл начальной загрузки, состояние Задачи никогда не будет ошибочным. У меня правильный статус, когда я удаляю соединение с сервером конфигурации и добавляю файл приложения.

После расследования вот что я понимаю: в классе BootstrapApplicationListener был добавлен новый слушатель CloseContextOnFailureApplicationListener. Этот слушатель поддерживает событие ApplicationFailedEvent. Чтобы поставить состояние задачи в состояние ошибки, прослушиватель TaskLifecycleListener также основан на событии ApplicationFailedEvent. К сожалению, CloseContextOnFailureApplicationListener сначала обрабатывает событие ApplicationFailedEvent и возвращает событие ContextClosedEvent с помощью метода context.close(). Это событие завершает задание, но с помощью метода TaskLifecycleListener.stop(), не обновляя тот факт, что задание выполнено с ошибкой.

После этого, наконец, TaskLifecycleListener поддерживает событие ApplicationFailedEvent, но, поскольку Задача уже завершена, состояние задачи не обновляется.

Как я могу запустить задачу с сервером конфигурации и иметь правильный статус (OK, KO)? Могу ли я изменить порядок слушателей так, чтобы событие ApplicationFailedEvent сначала обрабатывалось TaskLifecycleListener?

Спасибо.

Я исключил задачу с exitCode равным 1 (KO), но фактический exitCode равен 0 (OK).

...