首页 > 解决方案 > 用于 springBatch 项目的 azure 中的 webjobs

问题描述

我是 azure 的新手,并试图将我的 spring Batch 项目部署为 azure 中的 web 作业。在将 webjobs 添加为 jar 之前,有人可以帮助我完成我的 spring 批处理项目中需要做的过程或更改。

我已经尝试使用导出 jar 并将该 jar 添加为 azure 服务中的 webjob,但它对我不起作用。并帮助我如何从我的 spring Batch 项目中导出 jar 文件

标签: javaazurespring-batchazure-webjobs

解决方案


要创建可执行 jar,该 jar 必须具有指向主类的 MANIFEST.MF 类。我猜 azure webjobs 会尝试在没有参数的情况下执行主类,所以你不能org.springframework.batch.core.launch.support.CommandLineJobRunner直接使用。

因此,您需要编写一个自定义主类,例如:

public class ApplicationMain {


  public static void main(String[] args) {
            
    SpringApplication app = new SpringApplication(Application.class);
    app.setWebEnvironment(false);
    ConfigurableApplicationContext ctx = app.run(args);
    JobLauncher jobLauncher = ctx.getBean(JobLauncher.class);
    JobParameters jobParameters = new JobParametersBuilder()
        .add...
        .toJobParameters();  
        
    jobLauncher.run(ctx.getBean("...",  Job.class), jobParameters);  

    System.exit(0);
  }
}

在您的 MANIFEST.MF 文件中,您将需要:

Main-Class: com.something.ApplicationMain

如果这对您不起作用,请在您的问题中指定其他详细信息。


推荐阅读