22

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

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

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

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

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

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

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

4

1 回答 1

7

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

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

你的程序图 在此处输入图像描述

我希望这有帮助。

于 2014-09-26T16:36:04.957 回答