【发布时间】:2019-02-04 15:04:30
【问题描述】:
在 Jenkins 中,我需要将正在运行的作业执行限制为每天一次 这是可能的 ?
我的构建只是一个批处理命令
我有一个 cron 来执行我的工作,并且我可以使用 URL 来手动运行我的工作。如果作业已经执行,则必须阻塞一天
谢谢大家的回答
【问题讨论】:
-
由于这可能没有直接的答案来做你想做的事,你可以使用 Restriction job 插件来解决问题。您可以禁止手动作业并限制某些用户接受的作业,这样您可以让作业只有在您接受时才触发。 wiki.jenkins.io/display/JENKINS/Job+Restrictions+Plugin
-
谢谢回答,但我不能使用这个解决方案..手动执行应该有效,但每天只能执行一次..无论用户如何
-
如何添加一个命令来禁用你的工作,然后等到午夜再次激活它?最好的方法是创建一个禁用已完成作业的作业,然后等到午夜,然后再次启用该作业。你可以使用这个脚本来完成这个 import jenkins.* import jenkins.model.* try { Jenkins.instance.getItem("jobname").disable() } catch (Exception ex) { printf("Error disabling jobname." + ex.getMessage()) }
-
是的,这是个好主意,但问题是该作业在夜间定期运行,但我必须能够在白天通过 URL 运行一次
-
您说作业应该在 24 小时内只运行 1 次。因此,该解决方案应该适合您。因为该作业将在午夜后再次激活,如果您在早上手动运行它或它由 scedule 触发,它应该可以解决问题。先试试看