我应该使用 Jenkins 重量级执行器还是轻量级执行器来进行通知?
should I use Jenkins heavyweight or flyweight executors for notifications?
在我使用 Slack 集成的情况下,我的 Jenkins 管道中有几个步骤可以通知用户。
将通知代码写在 node
块中以使用重量级执行器还是将其留在外部以使用享量级执行器是一个好习惯吗?
根据 documentation:
Every Pipeline build itself runs on the master, using a flyweight executor — an uncounted slot that is assumed to not take any significant computational power.
This executor represents the actual Groovy script, which is almost always idle, waiting for a step to complete.
Flyweight executors are always available.
读完这篇文章后,我仍然不清楚通知使用重量级或轻量级执行程序是否被认为是一种好的做法
我享元执行器但是在发送邮件的时候出现如下错误:
Required context class hudson.FilePath is missing
为了避免这类问题,我会选择重量级执行器。
大多数步骤都会让您知道它们需要一个(重量级)执行程序插槽 (node/agent) - 请参阅 Daniels 的回答。
记住,执行器(重量级)是 Jenkins 防止机器过载的方法,Jenkins 运行 正在运行。通过限制执行者的数量,您可以限制 Jenkins 并行执行的任务数量,从而限制所需的资源。
对于通知,使用轻量级执行程序应该没问题(如果它在没有节点的情况下工作),因为它不需要你的詹金斯机器的太多资源。如果使用常规或轻量级执行器执行通知,它仍然取决于您的用例。如果发送此通知只需要几毫秒/一秒,并且如果您有(平均)足够的空闲执行程序,那么使用节点又名执行程序并没有什么坏处。那么通常更容易为您的整个管道使用一个节点/代理。
另一方面,请确保您的管道不会永远阻塞执行程序。例如。如果您使用输入步骤并且管道因此在用户输入上等待很长时间。这里轻量级执行器的使用很重要。网络请求的超时配置和其他可能较长的 运行 任务也有助于防止阻塞(常规)执行程序。
希望这有助于给你更多的指导。
在我使用 Slack 集成的情况下,我的 Jenkins 管道中有几个步骤可以通知用户。
将通知代码写在 node
块中以使用重量级执行器还是将其留在外部以使用享量级执行器是一个好习惯吗?
根据 documentation:
Every Pipeline build itself runs on the master, using a flyweight executor — an uncounted slot that is assumed to not take any significant computational power.
This executor represents the actual Groovy script, which is almost always idle, waiting for a step to complete.
Flyweight executors are always available.
读完这篇文章后,我仍然不清楚通知使用重量级或轻量级执行程序是否被认为是一种好的做法
我
Required context class hudson.FilePath is missing
为了避免这类问题,我会选择重量级执行器。
大多数步骤都会让您知道它们需要一个(重量级)执行程序插槽 (node/agent) - 请参阅 Daniels 的回答。
记住,执行器(重量级)是 Jenkins 防止机器过载的方法,Jenkins 运行 正在运行。通过限制执行者的数量,您可以限制 Jenkins 并行执行的任务数量,从而限制所需的资源。
对于通知,使用轻量级执行程序应该没问题(如果它在没有节点的情况下工作),因为它不需要你的詹金斯机器的太多资源。如果使用常规或轻量级执行器执行通知,它仍然取决于您的用例。如果发送此通知只需要几毫秒/一秒,并且如果您有(平均)足够的空闲执行程序,那么使用节点又名执行程序并没有什么坏处。那么通常更容易为您的整个管道使用一个节点/代理。
另一方面,请确保您的管道不会永远阻塞执行程序。例如。如果您使用输入步骤并且管道因此在用户输入上等待很长时间。这里轻量级执行器的使用很重要。网络请求的超时配置和其他可能较长的 运行 任务也有助于防止阻塞(常规)执行程序。
希望这有助于给你更多的指导。