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

spring Boot/batch通过代码禁用批处理自动启动

阎修杰
2023-03-14

我正在编写一个spring批处理应用程序,由需要按照特定顺序执行的不同作业组成。为此,我通过JobLauncher手动运行作业,并通过在属性文件中添加以下属性来禁用Spring批处理提供的自动启动特性:

spring.batch.job.enabled=false

共有1个答案

吉泰宁
2023-03-14
@Bean
@ConditionalOnMissingBean
@ConditionalOnProperty(prefix = "spring.batch.job", name = "enabled", havingValue = "true", matchIfMissing = true)
public JobLauncherCommandLineRunner jobLauncherCommandLineRunner(
        JobLauncher jobLauncher, JobExplorer jobExplorer) {
    JobLauncherCommandLineRunner runner = new JobLauncherCommandLineRunner(
            jobLauncher, jobExplorer);
    String jobNames = this.properties.getJob().getNames();
    if (StringUtils.hasText(jobNames)) {
        runner.setJobNames(jobNames);
    }
    return runner;
}

这来自BatchAutoConfiguration

据此判断,您可以尝试添加自己的JobLauncherCommandLineRunner实现,该实现不执行任何操作。这将影响@conditionalonmissingbean并且它不应该运行。

 类似资料:
  • 问题内容: 我只是使用Spring Batch框架创建了一个批处理作业,但是我没有运行CREATE SQL的数据库特权。当我尝试运行批处理作业时,在框架尝试创建TABLE_BATCH_INSTANCE时遇到错误。我尝试禁用 但是我尝试后仍然遇到错误 无论如何都可以禁用SQL,我只想测试我的阅读器编写器和处理器是否正常工作。 问题答案: 使用Spring Boot 2.0,你可能需要以下代码:htt

  • 我正在使用Spring Batch,我知道它可以自动创建元表。我不需要它们,我尝试了:或,我总是有这个错误:

  • 问题内容: 有什么方法可以使用C#以编程方式启用或禁用SQL SERVER触发器,还是我必须修改触发器本身以控制我的代码是否调用它? 问题答案: 通过SqlCommand执行DISABLE TRIGGER

  • 考虑一种需要使用Hibernate将大量记录上传到数据库的情况。 以下是使用Hibernate实现此目的的代码片段 - Session session = SessionFactory.openSession(); Transaction tx = session.beginTransaction(); for ( int i=0; i<100000; i++ ) { Employee em

  • 批处理允许您将相关的SQL语句分组到批处理中,并通过一次调用数据库来提交它们。 当您一次向数据库发送多个SQL语句时,可以减少通信开销,从而提高性能。 JDBC驱动程序不需要支持此功能。 您应该使用DatabaseMetaData.supportsBatchUpdates()方法来确定目标数据库是否支持批量更新处理。 如果JDBC驱动程序支持此功能,则该方法返回true。 Statement, P

  • 在本章中,我们将了解Apex中的批处理。 考虑一种情况,我们将每天处理大量记录,可能是清理数据或删除一些未使用的数据。 什么是Batch Apex? Batch Apex是Apex代码的异步执行,专门用于处理大量记录,并且在调控器限制方面比同步代码具有更大的灵活性。 何时使用Batch Apex? 如果您希望每天或甚至在特定的间隔时间内处理大量记录,那么您可以选择Batch Apex。 此外,当您