要求:
经理不希望作业实例和作业执行表中有多个作业实例。尽管多次处决没问题,但他只想要一个实例。
含义:作业不能以 COMPLETED 批处理状态结束,因为这样的实例永远无法重新启动。
我的方法:我尝试以 STOPPED 批处理状态结束作业,以便下一次运行作业运行与之前运行的相同实例。(请注意,如果作业失败,则没有问题,因为可以重新运行失败的实例)。我计划对作业没有参数,以便每次运行时创建的默认实例与数据库中已经存在的实例(作业实例表)相匹配。这样,我不必担心在重新启动时将任何参数传递给作业,因为只有一个实例并且它没有区分参数。
问题:如果所有步骤都完成并且所有这些步骤的 BATCH_STEP_EXECUTION 更新为 COMPLTED,即使我设法让作业执行以 STOPPED 状态结束,我也无法再重新运行同一个作业实例。我收到消息:所有步骤都已完成或没有为此作业配置步骤。
我知道该消息的含义,但我试图让所有步骤都以完成以外的状态结束,以便每当我重新运行我的单个实例时,这些步骤也可以重新运行,而不是收到上述消息。我知道可以使用步骤执行状态来导出作业执行状态。例如,如果一个步骤以 STOPPED 结束,您可以使用该状态来指示作业以 STOPPED 以及通过 、 或 元素结束。这不是我想要的,因为我已经知道如何使用它们,除非有办法做到这一点,这样它们会影响 BATCH_STEP_EXECUTION 表中更新的内容。
在该表中,如果步骤成功而不是 COMPLETED,我希望步骤以 STOPPED 结束。有任何想法吗?是否有可能首先实现这一目标?