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

如何从命令行启动位于spring boot项目中的spring批处理?

沈健
2023-03-14
@Configuration("myJobConf")
@JobReference("myJob")
public class MyJob
spring:
  batch:
    job:
      enabled: true
      names: ${JOB_NAME}
java -jar mySpringBootApplication.jar -DJOB_NAME=myJob

但现在我还需要传递一些工作参数。我怎么能那么做?

谢谢。

共有1个答案

葛哲彦
2023-03-14

但现在我还需要传递一些工作参数。我怎么能那么做?

可以将作业参数作为键/值对传递:

java -jar mySpringBootApplication.jar -DJOB_NAME=myJob param1=value1 param2=value2

您可以在参考文档的命令行部分的批处理应用程序->运行中找到更多细节。

 类似资料:
  • 我不知道如何使用调用Spring批处理中定义的作业,文档细节对我来说是不够的。 我遵循了Spring Batch官方指南,使用Java注释(例如)在Spring Batch中编写作业,因为我希望避免使用XML配置文件来描述作业、步骤等。 到目前为止我已经: 配置类(见下文),我使用AnnotaIon将定义、、、和(带有的所有内容放入其中。 具有方法的类,该方法具有并具有注释,以导入处理作业中的数据

  • 我能够通过命令行使用成功地启动springboot-batch作业。

  • 我开发了spring批处理作业,它从JDBC获取数据。我面临的问题是,它在项目启动时执行,而不管启用了什么属性。属性的值为FALSE。我试图在属性上创建一个条件bean,但它也不起作用,作业正在项目启动时执行。 遵循我的代码段。 我还试图对计划的注释进行注释,但它仍在执行作业和步骤。 //@调度(固定延迟=15000)公共无效调度ByFixed费率()抛出异常{ } 有人能告诉我这里缺少什么吗?以

  • 我正在尝试实现一个Spring批处理作业,为了处理记录,它需要2-3个db调用,这会减慢记录的处理速度(大小为100万)。如果我使用基于块的处理,它会单独处理每条记录,性能会很慢。因此,我需要一次性处理1000条记录,作为批量处理,这将减少数据库调用,并提高性能。但我的问题是,如果我实现Tasklet,那么我也会失去可重启性和重试/跳过功能,如果使用AggregateInputReader实现,我

  • 3)现在,当我运行analyis for javascript项目(使用jquery、Require.js、Bootstrape.js文件)时,它会抛出一个错误--“解析器错误”、“sonar runner执行过程中的错误。无法执行sonar。由:Java堆空间造成”。我试图增加sonar.properties文件中的堆大小,但没有帮助。 4)所以我开始使用sonarqube.scanner.ms