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

当前推荐的管理/停止spring-batch作业的方法是什么?

曾瀚昂
2023-03-14

我们有一些spring-batch作业是由autosys用shell脚本触发的,它们是短期的进程。

现在还没有办法查看spring-batch进程中发生的事情,所以我正在探索查看状态和管理(停止)作业的方法。

Spring Cloud Data Flow是我正在探索的选项之一--但当使用AutoSys调度作业时,它似乎不起作用。
在这方面,我还可以探索哪些其他选项,现在管理spring-batch作业的推荐方法是什么?

共有1个答案

沈实
2023-03-14

要停止作业,首先需要获得要停止的作业执行的ID。这可以使用JobExplorerAPI来完成,该API允许您探索Spring Batch在作业存储库中知道的元数据。获得作业执行ID后,可以通过调用joboperator#stop方法停止作业,请参阅参考文档中的停止作业一节。

这与用于启动作业的任何方法无关(手动、通过调度程序或图形工具),并且允许您优雅地停止作业并使存储库处于一致的状态(如果需要,可以重新启动)。

 类似资料:
  • 在浏览了spring文档之后,在我的代码中。 我面临的问题是,有时工作的终止是发生在预期和其他时间终止工作是不发生的。实际上,每次调用joboperator上的stop时,它都在更新BATCH_JOB_EXECUTION表。当终止成功发生时,作业的状态将通过杀死批处理过程中的jobExecution更新为STOPPED。其他失败的时候,它会完成批处理的其他不同流,并将BATCH_JOB_EXECU

  • Spring批处理集成文档解释了如何使用远程分块和分区的步骤,请参见 http://docs.spring.io/spring-batch/trunk/reference/html/springbatchintegration.html#Externalizing-batch-process-execution 我们的工作不包括简单的读取器/处理器/写入器步骤。因此,我们只想让整个作业并行运行,每

  • 如何在检测到问题后停止渐进式构建?我可以使用assert、抛出异常、执行system.exit(坏主意),或者在Gradle中使用专用函数(但我找不到)。对于Gradle来说,什么是最好的方法(为什么?)。

  • 但问题是整个作业被多次执行,事实上它根本没有停止。我必须强制停止工作执行。我在表中只有2行。我认为这是因为xml中定义了commit-interval,但是如果commit-interval=10,作业将执行10次以上 根据我的理解,当我运行xml文件(意味着我只运行作业一次)时,它调用读取器一次,将数据保存在运行时内存(作业存储库)中,调用项处理器一次(我使用列表),并且整个列表一次插入

  • 我想从ftp服务器上读取文件,然后将其保存到本地存储库中并从服务器上删除,运行读取文件的作业,在DB上找到一条记录,更改一个参数并保存。 Spring集成配置: Spring批处理配置: 我会很高兴得到任何帮助。