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

手动更改Spring Batch元数据表是个坏主意吗?

甘西岭
2023-03-14

我使用的是Spring Batch 2.1.8并通过commandlineJobrunner运行作业。例如:

java org.springframework.batch.core.launch.support.CommandLineJobRunner classpath:launchContext.xml theJobId
org.springframework.batch.core.repository.JobExecutionAlreadyRunningException: A job execution for this job is already running
java org.springframework.batch.core.launch.support.CommandLineJobRunner classpath:launchContext.xml theJobId times=0
UPDATE BATCH_JOB_EXECUTION SET END_TIME = SYSTIMESTAMP, STATUS = 'FAILED', EXIT_CODE = 'FAILOVER' WHERE JOB_EXECUTION_ID =
    (SELECT MAX(JOB_EXECUTION_ID) FROM BATCH_JOB_EXECUTION WHERE JOB_INSTANCE_ID =
        (SELECT MAX(JOB_INSTANCE_ID) FROM BATCH_JOB_INSTANCE WHERE JOB_NAME = 'XXX'));

解决方案2是个坏主意吗?有什么陷阱吗?

提前谢了。和任何其他解决方案都是赞赏的。

共有1个答案

辛意智
2023-03-14

解决方案2是目前公认的方法。API没有提供修复此场景的方法。过去有过要求框架自动清理的请求,但99%的情况下,需要人工决定是否真的需要清理。

对于选项2,我唯一要注意的是检查BATCH_STEP_EXECUTION表,看看最后执行的步骤是什么状态。

 类似资料:
  • 问题内容: 似乎我在某处听到/读到了a的内部禁忌。并不是说它不起作用,只是基于它们的显示类型,关于它们的兼容性不佳。找不到任何证据来支持我的预感,所以我可能完全错了。 问题答案: 使用实例a 并不比使用表进行布局的任何其他方式差。(尽管有些人从不使用表格进行布局,而我恰好是其中之一。) 如果您使用的,你会得到但在一种情况,它可能是很难预测的因素将如何调整大小。div的默认值是从其父对象确定其宽度,

  • 我正在考虑写一些代码,可以归结为以下几点是一种集合类型(当前为,如果有必要的话)。 我的问题是,像这样把复制到是不是一个坏主意?糟糕的风格?可能会惹恼某个学究?根据类型的细微细节是否可能中断? 我不希望在这个循环运行时被破坏,也不希望任何元素被添加或删除。 一方面,我对迭代器的了解表明,这应该是完全安全的。但另一方面,我对迭代器有些不了解,这感觉有点粗略,所以我想问一下。 增编: 出现这种情况的另

  • 问题内容: 在ES6中,我们可以进行匿名类: 但是我们也可以实例化它: 它背后的工作是什么,它将带来什么优势以及它也会带来什么警告? 问题答案: 匿名类实例-这是一个坏主意吗? 每次评估表达式时,这种书写风格都会导致创建新的构造函数和原型对象。如果使用这种方法创建多个对象,则它们将不会获得类/原型的任何好处。 如果您打算使用此模式创建单例对象,那么您也会失败。构造函数仍然可以创建,甚至可以访问-使

  • 在ES6中我们可以做匿名类: 但我们也可以将其实例化: 它背后做了什么,它会带来什么优势,也会带来什么警告?

  • 问题内容: 为什么Catch(Exception)一个坏主意? 问题答案: 因为当你捕获异常时,你应该正确处理它。而且,你不能期望在代码中处理所有类型的异常。同样,当你捕获所有异常时,你可能会得到一个无法处理的异常,并阻止堆栈中位于较高位置的代码正确处理它。 一般原则是捕获可能的最特定类型。

  • 我有一个小的应用程序,用户可以拖放一个HTML表中的任务。 当用户删除任务时,我调用一个名为的javascript函数: 在task_update.php中,我得到我的值;、&并执行PDO更新查询来更新我的数据库。如果查询正确执行,则I 对我来说,最好的做法是什么?