如何远程启动jenkins构建并以事务方式获取结果?

时间:2014-08-14 02:29:33

标签: jenkins jenkins-plugins

我有一个请求a创建一个java客户端并为特定的工作启动jenkins构建;并获取该构建的结果。 问题是,系统被多个用户使用,他们的构建可能完全混乱。获取最新的构建我将检索先前完成的构建而不是当前构建。无论如何都要以事务方式构建/获取结果吗?

1 个答案:

答案 0 :(得分:0)

我认为没有办法获得真正的交易功能(例如, Postgres 是交易的),但是,我认为你可以防止通过执行以下操作实现多个用户:

让你的构建包围一个脚本( bash Python 或类似的东西),它在上取出独占锁定构建之前的semfile 并在完成之后将其释放。也就是说,一个文件充当信号量,构建过程必须能够独占锁定才能继续。

这样,如果您正在进行构建,而另一个用户触发一个,则正在进行的构建将锁定 semfile ,并且第二个将阻止等待独占锁定该文件,仅在第一次构建完成后获取锁定并释放锁定文件。

另外,为了能够在事后提及每个远程构建,我建议您参考我之前的帖子Retrieve id of remotely triggered jenkins job