一尘不染

我应该使用Jenkins重量级或轻量级执行器进行通知吗?

jenkins

在我的Jenkins管道中,我使用Slack集成来通知用户的步骤很少。

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

根据文档

每个管道构建本身都使用flyweight执行程序在主数据库上运行,这是一个无计数的插槽,假定不会占用任何重要的计算能力。

该执行程序代表实际的Groovy脚本,该脚本几乎总是空闲的,等待步骤完成。

轻量级执行器始终可用。

读完这篇文章后,我仍然不清楚,使用重量级或轻量级执行程序的通知是否被视为一种好习惯


阅读 408

收藏
2020-07-25

共1个答案

一尘不染

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

请记住,执行程序(重量级)是Jenkins防止Jenkins运行的机器过载的一种方式。通过限制执行程序的数量,您可以限制Jenkins正在并行执行的任务的数量,因此也就限制了所需的资源。

对于通知,最好使用轻量级的执行程序(如果它在没有节点的情况下运行),因为它不需要詹金斯机器的大量资源。这仍然取决于您的用例,如果使用常规或轻量级执行程序执行通知,那么到底有多重要?如果仅花费几毫秒/秒的时间发送此通知,并且您(平均)有足够的免费执行程序,则使用节点aka执行程序也不会受到损害。这样一来,为整个管道使用一个节点/代理通常会更容易。

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

希望这有助于您提供更多指导。

2020-07-25