如何放弃僵尸工作?

时间:2015-04-21 05:48:50

标签: java spring spring-batch

我在Web应用程序中使用Spring Batch。这些作业由自定义TaskExecutor运行,该自定义Runnable管理队列中提交的STARTING并一个接一个地执行它们。因此,许多工作长期处于状态STARTED或{{1}}。

现在,当队列中仍有作业时服务器已关闭。重新启动服务器后,作业仍然标记为正在运行,但应该放弃它们。

如何做到这一点?

1 个答案:

答案 0 :(得分:1)

Spring Batch没有提供开箱即用的工具。其原因在于,这通常需要某种人类决定这种行为适合的条件。

话虽如此,在您的情况下,如果您没有在集群环境中运行,您可以创建一个组件,在应用程序上下文初始化时,检查作业存储库并根据需要更新状态(类似于你可以在启动时初始化数据源。