我应该使用 Jenkins 重量级还是轻量级执行器来发送通知?

yef*_*iak 4 jenkins jenkins-pipeline jenkins-2

我的 Jenkins 管道中有几个步骤可以通知用户,在我的情况下使用 Slack 集成。

在node块中编写通知代码以使用重量级执行器还是将其留在外面以使用享元执行器是一种好习惯吗?

根据文档:

每个 Pipeline 构建本身都在 master 上运行,使用一个享元执行器——一个不计入数的插槽,假定不占用任何重要的计算能力。

这个 executor 代表实际的 Groovy 脚本,它几乎总是空闲的,等待一个步骤完成。

Flyweight 执行器始终可用。

读完这篇文章后,我仍然不清楚使用重量级或蝇量级执行器是否被认为是通知的好习惯

Phi*_*lip 5

大多数步骤会让您知道它们需要(重量级)执行器插槽(节点/代理) - 请参阅 Daniels 的回答。

请记住,执行程序(重量级)是 Jenkins 防止 Jenkins 运行的机器过载的方式。通过限制执行程序的数量,您可以限制 Jenkins 并行执行的任务数量,从而限制所需的资源。

对于通知,使用轻量级执行器(如果它在没有节点的情况下工作)应该没问题,因为它不需要 jenkins 机器的太多资源。如果使用常规或轻量级执行器执行通知,这仍然取决于您的用例。如果发送此通知只需要几毫秒/秒,并且如果您(平均而言)有足够的免费执行程序,那么使用节点又名执行程序并没有什么坏处。然后,为您的完整管道使用一个节点/代理通常会更容易。

另一方面,请确保您的管道不会永远阻塞执行程序。例如,如果您使用输入步骤,因此管道会在用户输入上等待很长时间。这里轻量级执行器的使用很重要。网络请求和其他可能长时间运行的任务的超时配置也有助于防止阻塞(常规)执行程序。

希望这有助于给你一些更多的方向。