我在Jenkins有一些工作,使用Selenium通过网站的前端修改数据库。如果其中一些作业同时运行,则可能导致由于脏读导致的错误。有没有办法迫使詹金斯的某些工作无法同时运行?我宁愿不必在数据库上放置或拾取锁,这可以通过任何数量的正在测试的用户读取或修改。有没有办法让詹金斯的工作互相排斥?
29
A
回答
21
你想要Throttle Concurrent Builds插件,它可以让你定义全局和每个节点的信号量。
锁定和锁存正在deprecated支持油门并发构建。
4
我试过locks & latches插件和port allocator插件作为实现你想要做的事情的方法。对我来说都没有可靠的工作。一些时间锁定锁&,但我偶尔会挂起工作。使用端口分配器作为黑客将工作,除非你有多个jenkins节点,但配置开销很高。我已经在最终结算是另一个黑客,但它工作可靠,使用核心詹金斯的东西(无插件):
- 建立在相同的机器上运行的主从节点(或没有,如果你有大量的箱)
- 给这从一个单一的执行(关键)
- 领带必须没有到这个新的从节点
- 选择设置从服务器的使用情况,以“只绑作业同时运行2个(或n)工作'如果它碰巧在新的奴隶上运行,它会搞砸你的其他工作
由于奴隶只有一个执行者,与其相关的工作永远不能一起运行。
+2
太棒了!对于像我这样的初学者来说,只需要注意一件事:绑定作业,在作业配置中使用“限制可以运行此项目的位置”选项。 – Linulin
相关问题
- 1. 詹金斯作业Windows PowerShell脚本$ lastexitcode没有失败的詹金斯工作
- 2. 詹金斯有没有办法阻止或减少重复工作?
- 3. 詹金斯没有图标
- 4. 詹金斯没有失败
- 5. 在詹金斯安排周末工作
- 6. 本地詹金斯Maven有没有互联网连接
- 7. 詹金斯的工作是由GitHub webhook戳,但没有开始
- 8. 有没有办法让这项工作?
- 9. 詹金斯格里特触发不同的詹金斯工作
- 10. 詹金斯:gitlabCommitStatus不工作
- 11. 从詹金斯工作
- 12. 多詹金斯工作区
- 13. 有没有办法说明詹金斯在克隆Git回购中有多远?
- 14. 斯卡拉 - 相互排斥的特质
- 15. 詹金斯的JUnit jar没有看到
- 16. 詹金斯工作:无法从壳
- 17. 文件没有出现在詹金斯工作区
- 18. 詹金斯管道如果还没有工作
- 19. 无效:E:\詹金斯\工作区\ XXX.dll已经没有TestFixtures
- 20. NOHUP没有在詹金斯工作外壳
- 21. 工作dsl复制现有的詹金斯工作
- 22. 詹金斯挂断:请等待詹金斯准备工作
- 23. 用詹金斯工作备份詹金斯主目录
- 24. 詹金斯工作流并行步骤和詹金斯配置
- 25. 让詹金斯忽略stderr的方法?
- 26. 有没有办法运行在声明詹金斯管道结帐前阶段?
- 27. 有没有办法来检查詹金斯重新启动历史
- 28. 有没有什么办法在詹金斯设置制动警告阈值
- 29. 詹金斯Twilio插件 - 有没有办法配置文本发送规则?
- 30. 詹金斯没有从虚拟光驱
我没有注意到Lock&Latches插件上的弃用警告,我将用这个新插件更新我的Jenkins,谢谢。 –