Jenkins 中的“Fire and Forget”:何时使用以及实际含义

108次阅读
没有评论

问题描述

在使用 Jenkins 时,有一个名为“fire and forget”的概念,即“触发并忘记”。这似乎与 IT 中的一些基本原则相冲突,即在编写过程(或程序等)时,始终要为可能出现的意外情况(返回代码等)做好准备,以便进行适当的错误处理。用户想要了解在 Jenkins 中何时使用“fire and forget”的例子,以及这个概念的实际含义是什么。

解决方案

“Fire and Forget”在 Jenkins 中的含义与表面上的理解有所不同。它并不意味着触发一个事件后就忘记了该事件的结果。实际上,这个概念强调的是,在触发某个进程后,你可以在该进程返回反馈之前忘记它正在做什么。

“Fire and Forget”的实际含义:

在传统的方法中,你可能会触发一个构建过程,并在构建过程进行时持续关注其输出。你可能会一边看着构建过程的结果,一边不进行其他有生产性的工作。或者你可能在进行一些有生产性工作的同时,也会时刻注意构建过程。当构建完成时,你需要专注于观察,或者记得检查结果,然后根据结果继续工作。

在 Jenkins 的“Fire and Forget”模型中,你可以让自动化的过程为你执行构建,而你不需要专注于构建过程,直到出现问题或构建完成为止。在这一点上,你会从 Jenkins 收到消息,可能是通过电子邮件或类似 Slack 这样的程序,提醒你构建的进展情况,并告诉你移步下一步所需的所有信息。在此期间,你可以专注于其他任务,因为你知道不必专注于构建过程。自动化系统会在需要时提醒你所需的任何信息。

使用“Fire and Forget”在 Jenkins 中的情况:

一个使用“fire and forget”在 Jenkins 中的典型情况是创建并行的流程链,以缩短流水线的持续时间,并结合使用“Join 插件”。这个插件允许在所有直接下游任务完成后运行一个作业。通过这种方式,执行可以分支并在并行进行许多步骤,然后在所有并行工作完成后仅运行最终的聚合步骤。

这在创建类似“钻石”形状的项目依赖关系时非常有用。这意味着有一个单一的父作业启动了几个下游作业。一旦这些作业完成,一个单一的聚合作业将运行,以进行最终的聚合操作。

因此,尽管“Fire and Forget”听起来像是在触发后忘记了进程,但实际上它更强调的是在进程完成后,系统会提醒你,并且你可以专注于其他任务,而不必持续关注进程的执行。

提示:在使用“Join 插件”或其他 Jenkins 功能时,请根据你的具体情况进行配置和使用,以确保正确实现所需的流程和依赖关系。

总结

在 Jenkins 中的“Fire and Forget”并不是字面意义上的“触发并忘记”,而是指在触发进程后,你可以在进程完成前专注于其他任务,并在进程完成后通过系统提醒来获取结果。这种方法在创建并行流水线以及处理任务依赖关系时非常有用,让你能够更有效地管理任务和进程。

注意:以上解决方案中的任何操作都应在确保备份和版本兼容性的情况下进行。

参考链接

正文完