Подтвердить что ты не робот

Bamboo: как выполнить некоторую логику, если задание отменено или не выполнено

Я в процессе написания плагина Bamboo, основная часть которого завершена.

Плагин работает, запустив удаленный процесс с помощью запроса на отправку на сервер, а затем опросив один и тот же сервер, пока не получит сообщение о завершении процесса или возникшей ошибке - эта часть работает.

Я хотел бы добавить дополнительную логику, где я могу уведомить об этом сервере, если пользователь отменяет задание, однако я не уверен, как это сделать.

Я играл с созданием другой задачи, которая запускается как окончательная задача, однако я не знаю, как определить, не удалась или не была отменена какая-либо из предыдущих задач.

Я попытался использовать List<TaskResult> taskResults = taskContext.getBuildContext().getBuildResult().getTaskResults();, чтобы получить список предыдущих результатов задачи, однако это всегда возвращает 0 результатов задачи.

Я также пробовал использовать Post-Build Completed Action Module, однако я не уверен, как бы это добавить к заданию, и документация по этому поводу меня слегка озадачила.

Если бы кто-нибудь мог помочь мне в правильном направлении, я был бы признателен.

4b9b3361

Ответ 1

Из того, что вы написали, я думаю, что использование прослушивателя событий - это, безусловно, правильный способ приблизиться к вашей проблеме. Ниже я представил изображение своего собственного творения, которое, похоже, описывает то, что вы создали, и показывает, где лучше всего разместить слушателя событий.

По существу, ваш клиент отправит уведомление об отмене на сервер через свой механизм сетевого контроллера. Затем сервер получит уведомление об отмене через свой сетевой контроллер, который уже подключен к клиенту через некоторый сетевой протокол (я принимаю TCP). Когда это уведомление об отказе от сетевого контроллера клиента достигает сетевого контроллера сервера, прослушиватель событий в сетевом контроллере сервера будет сигнализировать диспетчеру сборки сервера о завершении удаленной сборки.

Схема вашей программы enter image description here

Надеюсь, это поможет.