首页 > 解决方案 > Rundeck 多个作业执行,排队或丢弃?

问题描述

用于创建工作的 Rundeck 文档,

https://docs.rundeck.com/docs/manual/creating-jobs.html#creating-a-job

说:

多次执行 默认情况下,作业作为“单次执行”运行——一次只能运行一次。如果另一个单独的进程也在同一个节点上执行它们,则如果作业执行的步骤可能会受到干扰,这将很有用。

但是,在某些情况下,允许一个作业同时执行多次是很有用的。

您可以通过在如下所示的作业编辑器字段中将值切换为是来使作业允许“多次执行”:

我的问题:

  1. 对于默认的“单次执行”模式,后续同时运行的作业会发生什么情况?它们是被丢弃还是排队?

  2. 对于“多次执行”模式,超过“最大多次执行次数”的后续同时运行作业会发生什么?它们是被丢弃还是排队?

感谢您的任何指导。

标签: rundeck

解决方案


您可以使用这样的简单作业定义进行测试:

<joblist>
  <job>
    <defaultTab>nodes</defaultTab>
    <description></description>
    <executionEnabled>true</executionEnabled>
    <id>72fe54d5-26da-4cd4-a487-0955bd3b7f67</id>
    <loglevel>INFO</loglevel>
    <name>HelloWorld</name>
    <nodeFilterEditable>false</nodeFilterEditable>
    <plugins />
    <scheduleEnabled>true</scheduleEnabled>
    <sequence keepgoing='false' strategy='node-first'>
      <command>
        <exec>sleep 15; echo "hello"</exec>
      </command>
    </sequence>
    <uuid>72fe54d5-26da-4cd4-a487-0955bd3b7f67</uuid>
  </job>
</joblist>

如果再次执行作业,您会看到错误。

因此,如果您将作业修改为允许“两次多次执行”,您可以看到同一作业的 2 次执行正常工作:

<joblist>
  <job>
    <defaultTab>nodes</defaultTab>
    <description></description>
    <executionEnabled>true</executionEnabled>
    <id>72fe54d5-26da-4cd4-a487-0955bd3b7f67</id>
    <loglevel>INFO</loglevel>
    <maxMultipleExecutions>2</maxMultipleExecutions>
    <multipleExecutions>true</multipleExecutions>
    <name>HelloWorld</name>
    <nodeFilterEditable>false</nodeFilterEditable>
    <plugins />
    <scheduleEnabled>true</scheduleEnabled>
    <sequence keepgoing='false' strategy='node-first'>
      <command>
        <exec>sleep 15; echo "hello"</exec>
      </command>
    </sequence>
    <uuid>72fe54d5-26da-4cd4-a487-0955bd3b7f67</uuid>
  </job>
</joblist>

但是,如果您执行 3 次相同的作业,您会看到与第一个场景相同的错误。

简短回答:如果超过默认值或定义值,则放弃执行。


推荐阅读