java - Bamboo : How to execute some logic if job is cancelled or fails

标签 java bamboo

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

插件的工作原理是通过对服务器的发布请求启动远程进程,然后轮询同一服务器,直到它收到一条消息,说明进程已完成或发生错误 - 这部分有效。

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

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

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

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

如果有人能在正确的方向上帮助我,我将不胜感激。

最佳答案

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

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

你的程序图 enter image description here

我希望这会有所帮助。

关于java - Bamboo : How to execute some logic if job is cancelled or fails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18514084/

相关文章:

java - 验证 completablefutures 列表的大小

java - 防止 jfx packager 的辅助启动器在 Windows 中触发 UAC/提升权限

java - 虽然我在服务器中启用了 Java,但我面临着 java 路径问题

scripting - 如何在内联脚本中引用 Bamboo 工件?

java - 一旦达到某个障碍,如何停止动画?

java unmarshalling - NULL 值或缺少标记?

java - 在 Hibernate 中存储在 Set 中时的 equals() 和 hashCode()

selenium-webdriver - 带有 Selenium 网络驱动程序的 Bamboo

git - 如何从 Bamboo Script 任务中执行 git Push

java - 如何使用bamboo部署独立的java程序