如何将长时间延迟合并到Jenkins构建过程中?

如何将长时间延迟合并到Jenkins构建过程中?,jenkins,jenkins-plugins,continuous-deployment,Jenkins,Jenkins Plugins,Continuous Deployment,我使用Jenkins将更改部署到一个系统中,该系统管理并运行每天安排的许多不同作业。我们有一个不写入真实数据库的暂存设置和一个写入真实数据库的生产设置 詹金斯流,我想有一个发生时,改变推动是这样的 进行检查 部署到登台系统 等24小时 检查日志以确保临时系统在过去24小时内没有任何错误 部署到生产系统 在任何时候都可能有多个构建同时运行——例如,我在上午11点推送更改,它们被部署到登台。在下午5点,我推送了更多的更改,它们也被部署到staging。第二天上午11点,仅将第一组更改部署到prod。

我使用Jenkins将更改部署到一个系统中,该系统管理并运行每天安排的许多不同作业。我们有一个不写入真实数据库的暂存设置和一个写入真实数据库的生产设置

詹金斯流,我想有一个发生时,改变推动是这样的

  • 进行检查
  • 部署到登台系统
  • 等24小时
  • 检查日志以确保临时系统在过去24小时内没有任何错误
  • 部署到生产系统
  • 在任何时候都可能有多个构建同时运行——例如,我在上午11点推送更改,它们被部署到登台。在下午5点,我推送了更多的更改,它们也被部署到staging。第二天上午11点,仅将第一组更改部署到prod。当天下午5点,部署第二组更改

    现在,我已经通过使用buildflow插件,创建了一个名为
    wait_one_day
    的作业,该作业在bash shell中运行
    sleep$((24*60*60))
    来构建一个系统

    这似乎不是最优雅的解决方案,缺点是每次我们进行更改时,我会将两个构建执行器捆绑24小时(一个用于构建流作业,另一个用于等待一天)

    有没有更好的方法来实现这一点,或者有没有专门设计的插件来帮助实现这一过程?Jenkins作业能否安排另一个Jenkins作业作为一次性作业运行

    如果有人对我的设计有任何建议或建设性的批评,我同样很乐意听到解决同样问题的替代方法。

    最近我回答了一些问题,尽管我不确定这是否完全符合您的设想

    您可以动态创建执行步骤4和步骤5的作业,该作业将每隔24小时定期运行。这里的问题是,您实际上只运行此作业一次,并且在该作业中有一个删除自身的构建步骤(groovy代码或shell脚本)。创建一个停用的模板作业非常简单,您可以只克隆它,然后针对特定任务进行修改。中间作业是必要的,它将在运行步骤1和2的任何作业完成时触发。然后,中间作业将从模板创建临时作业

    或者,您也可以在jenkins内部或外部创建某种处理程序,该处理程序将运行一些属性文件或数据库,其中包含需要启动作业时的调度。当然,如果你要走写一个处理程序的路线,你可能会考虑投入一点额外的努力,写一个詹金斯插件…