当前位置: 首页 > 知识库问答 >
问题:

为什么JobExecution决策器有一个stepExecution提供给决策方法?

孔嘉茂
2023-03-14

根据我的经验,当调用decider时,这个步骤执行总是空的。似乎JobExecutionDecider与提供给decide方法的作业执行相关联,但由于作业决策器不与任何单个步骤相关联,因此不需要提供步骤执行。

我有什么遗漏吗?在stepExecution不为null的情况下,是否还有其他方法可以使用JobExecutionDecider?

共有2个答案

程淮晨
2023-03-14

甚至我在代码中也看到了同样的事情。但我猜,如果你将决策步骤作为工作的第一步,那么它将为null;如果你将决策步骤作为任何进一步的步骤而不是第一步,那么它将不会为null。因为我认为spring使用StepExecution作为在作业的各个步骤之间通信数据的媒介。

范楚
2023-03-14

我不知道为什么在您的情况下,stepExecution总是为null,因为您还没有发布配置,您的问题也不太清楚。

话虽如此,参考官方文档中所示的场景,配置中解释了如果执行到步骤2或步骤3取决于某个条件。

某些条件可能进一步取决于步骤1的执行,即您可能使用此步骤1-步骤执行使某些条件为true或false。

这完全取决于该条件是什么以及它可能使用什么,但根据该图,stepExecution不会为null,因为该求值发生在step1停止执行且其执行可用之后。

另外,引用,

在某些情况下,可能需要比ExitStatus更多的信息来决定下一步执行哪个步骤

这意味着默认情况下,框架已经使用了这种仅基于step的退出状态的决策器。您可以在这里重写该逻辑,以便在做出决策时使用其他列。

此外,引用API文档,

基于正在进行的作业执行的状态来分支执行的策略。返回值将用作状态,以确定作业中的下一步。

持续的作业执行是一个主容器,也包含步骤执行。

此外,根据源代码中的JavaDoc,@参数stepExecution最新的步骤执行(可能为空)

希望有帮助!!

 类似资料:
  • 决策结构要求程序员应指定要由程序评估计算或测试的一个或多个条件,以及条件确定为真时要执行的语句或语句,如果条件被确定为假时,可选地如果执行其他语句。 以下是大多数编程语言中典型的决策结构的一般形式 - MATLAB提供以下类型的决策语句。点击以下链接来查看它们的详细说明 - 语句 描述 if…end语句 语句包含一个布尔表达式,后跟一个或多个语句。 if…else…end语句 语句可以跟随一个可选

  • 决策结构要求程序员应当指定要评估(计算),由程序进行测试一个或多个条件,一条或多条语句一起被执行后,确定是否条件为真;以及作为一个选项,如果确定条件为假时要执行其它语句。 Erlang编程语言提供了以下类型的决策声明。 S.No. 语句 & 描述 1 If语句 if语句包含一个布尔表达式后跟一个或多个语句 2 多个表达式 if表达式也允许进行一次评估(计算)多个表达式 3 内嵌if语句 您可以使用

  • 决策允许程序员控制脚本或其中一个部分的执行流程。执行由一个或多个条件语句控制。 以下是在大多数编程语言中找到的典型决策结构的一般形式。 VBA提供了以下类型的决策声明。 点击以下链接来查看它们的详细信息。 编号 语句 描述 1 if语句 一个语句由一个布尔表达式和一个或多个语句组成。 2 if…else语句 语句由一个布尔表达式和一个或多个语句组成。如果条件为,则执行语句下的语句。如果条件为,则执

  • 决策树 概述 决策树(Decision Tree)算法是一种基本的分类与回归方法,是最经常使用的数据挖掘算法之一。我们这章节只讨论用于分类的决策树。 决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。它可以认为是 if-then 规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。 决策树学习通常包括 3 个步骤:特征选择、决策树的生成和决策树的修剪。 决策树 场景

  • 决策树是一种常见的机器学习方法,它基于二元划分策略(类似于二叉树),如下图所示 一棵决策树包括一个根节点、若干个内部节点和若干个叶节点。叶节点对应决策的结果,而其他节点对应一个属性测试。决策树学习的目的就是构建一棵泛化能力强的决策树。决策树算法的优点包括 算法比较简单; 理论易于理解; 对噪声数据有很好的健壮性。 使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选

  • 决策对计算机编程至关重要。 在有许多情况下,您将获得两个或更多选项,并且您必须根据给定条件选择一个选项。 例如,我们希望根据他的安全标记打印关于学生的评论。 以下是情况 - Assume given marks are x for a student: If given marks are more than 95, then Student is brilliant If given marks