Bamboo :如果作业被取消或失败,如何执行一些逻辑

2022-09-02 02:01:05

我正在编写一个Bamboo插件,其中大部分已经完成。

该插件的工作原理是通过向服务器发出post请求来启动远程进程,然后轮询同一服务器,直到它收到一条消息,指出该进程已完成或发生错误 - 这部分工作。

我想添加一些额外的逻辑,如果用户取消工作,我可以通知此服务器,但是我不确定如何执行此操作。

我已经尝试过创建另一个作为最终任务运行的任务,但是我不知道如何检测以前的任务是否失败或被取消。

我尝试使用来获取上一个任务结果的列表,但是这似乎总是返回0任务结果。List<TaskResult> taskResults = taskContext.getBuildContext().getBuildResult().getTaskResults();

我也尝试过使用构建后完成的操作模块,但是我不确定如何将其添加到作业中,并且有关此文档的文档使我有点困惑。

如果有人能帮助我朝着正确的方向前进,我将不胜感激。


答案 1

通过阅读您编写的内容,我认为使用事件侦听器绝对是解决问题的正确方法。下面我提供了我自己创作的图像,它似乎描述了您构建的内容,并显示了最好将事件侦听器放置在何处。

从本质上讲,您的客户端将通过其网络控制器机制向服务器发出取消通知。然后,服务器将通过其网络控制器接收取消通知,该网络控制器已通过某些网络协议(我假设TCP)连接到客户端。当来自客户端网络控制器的取消通知到达服务器的网络控制器时,服务器网络控制器中的事件侦听器将向服务器生成管理器发出信号,以终止远程生成。

程序图示 enter image description here

我希望这有帮助。


答案 2

推荐