我在Jenkins中配置了一个多分支管道项目。该项目在我的所有功能分支(git)上联调运行。对于管道项目中的每个作业,它都会创建一个我的webapp实例(启动tomcat和其他依赖项)。由于端口绑定问题,这会导致许多工作中断。
我可以限制多分支管道项目中的构建,以便每个功能分支的作业顺序运行而不是并行运行吗?
或者有没有更优雅的解决方案?
编辑:情况和问题:
问题是,许多这样的工作可以在午夜开始。每个作业都会尝试启动我的webapp实例。第一个作业可以毫无问题地启动webapp。第二个作业无法启动webapp,因为端口已从第一个实例获取。
我不想为我的git存储库中的每个功能分支配置新的端口绑定。我需要一个解决方案来限制多分支管道中的构建,以便只有在“功能”上才能并发运行。
最优雅的解决方案是使您的集成测试能够同时运行。
一种解决方案是使用带有动态端口的嵌入式tomcat。这样,每个作业实例都将在具有不同端口的tomcat中运行。这也是比依赖外部服务器更好的解决方案。
如果这项工作太多,您可以在“jenkinsfile”管道中始终使用以下代码:
node {
// This limits build concurrency to 1 per branch
properties([disableConcurrentBuilds()])
// continue your pipeline ...
}
解决方案来自于这样的答案。
从我在其他答案中读到的内容来看,disableConcurrentBuilds命令只能防止在同一分支上进行多个构建。
如果您希望一次仅运行一个构建,请转到运行您的应用程序的特定VM的Nodes/Build执行器配置,将执行器的数量降至1并配置节点标签,以便只有来自您的多分支管道的作业可以在该VM上运行。
我的项目有严格的内存、许可和存储限制,因此通过这种设置,主分支和功能分支上的所有作业都会启动,但在执行器可用之前,一次只能运行一个作业。
问题内容: 我要查询所有10个表以从中获取用户ID,并将所有用户ID加载到HashSet中,以便可以拥有唯一的用户ID。 截至目前,它是按顺序进行的。我们转到一个表,并从中提取所有user_id并将其加载到哈希集中,然后将其存储在第二个和第三个表中并继续运行。 有什么方法可以使这个多线程的,以便他们为每个表并行地从我的表中获取数据?最后,我需要哈希集,该哈希集应具有所有10个表中的所有唯一用户ID
我正在开始一门Android Studio课程,但我在运行代码时遇到了问题:事实上,当我使用Nexus S API 22点击“Run app”时,启动的是我的旧项目,而不是我的新项目。我有Android Studio 3.5 我试图重启Android Studio并启动全新的项目,但没有成功。 谢谢你的帮助。
一个spark有一个oracle查询。所以我必须并行运行多个作业,以便所有查询都将同时激发。 如何并行运行多个作业?
有没有办法运行(不仅编译)单个类(使用main方法)而不是像Intellij IDEA那样运行整个项目? 而且,是否可以在同一窗口中打开不同的项目,而不是在新窗口中或在当前项目的位置打开它们?
我试图在maven reactor项目的子项目中执行Java文件。这与Maven exec:java goal在多模块项目上的问题类似,但是除非我执行,否则exec插件无法找到我试图在子项目中运行的类。 也许我误解了的预期工作流程,但每次更改时都必须执行mvn install,这确实会使工作流程复杂化。 当我从Eclipse执行文件时,Eclipse会正确设置类路径(即和),我希望从命令行模拟这种
问题内容: 如果我有这样的数据: 我如何将命令连接成这样: 我在下面使用了此查询,但命令列的顺序不依其顺序号而定: 任何意见和建议将不胜感激。^ _ ^ 问题答案: 永远不要使用。阅读为什么不在Oracle中使用WM_CONCAT函数? 请参阅本主题https://stackoverflow.com/a/28758117/3989608。 它没有记录,并且依赖的任何应用程序一旦升级到后都将无法工作