使用Quartz运行Spring批作业

   点击蓝字,关注Java高级部落!


嘿,伙计们。在本教程中,我们将看到Spring批处理作业如何使用Quartz调度程序运行。如果您不确定SpringBatch的基本知识,可以访问我的教程这里。


使用Quartz运行Spring批作业


现在,正如我们所知道的,每当我们想要运行任何特定于业务的代码或在任何特定时间/一天运行/生成任何报告时,都会使用Spring批处理作业。有两种实现任务的方法:tasklet 和chunks。在本教程中,我将使用tasklet,它将打印一个logger。这里的基本思想是让这个作业运行所需的所有配置。我们将使用SpringBoot引导应用程序。


对于在我们的应用程序中有Spring批处理和Quartz,我们需要在put.xml中有以下两个依赖项。

使用Quartz运行Spring批作业

现在,让我们看看在代码中运行作业所需的所有配置。




1

BatchConfiguration.java


使用Quartz运行Spring批作业


我们一个接一个地去:

·  @Configuration:这指定该类将包含bean,并将在加载时实例化。

·  @EnableBatchProcessing:这启用了Spring批处理功能,并为设置批处理作业提供了基本配置。

·  @Import({BatchJobsDetailedConfiguration.class}):这将导入所需的其他配置,我们将在后面看到。

·  JobRegistry:此接口用于注册作业。

·  ResourcelessTransactionManager:当您希望使用任何数据库持久性运行作业时,将使用此类。

·  JobRepository:这包含作业的所有元数据,它返回MapJobRepositoryFactoryBean用于非持久的DAO实现。

·  JobLauncher:这是用来启动一个作业,需要作为一个依赖项的职务存储库。

·  JobRegistryBeanPostProcessor:这用于在jobRegistry,则返回jobRegistry.

我们现在去上进口课。




2

BatchJobesDetailedConfiguration.java


使用Quartz运行Spring批作业


让我们深入研究一下:

· ApplicationContextFactory这个接口在创建新的ApplicationContext 每执行一项任务。最好是创造一个珍珠applicationContext每一份工作。


· JobDetailFactoryBean用于创建Quartz作业详细信息实例。这个类将设置一个作业类,我们将在后面看到。它创建一个映射,该映射将使用类和joblauncher.


· CronTriggerFactoryBean这是用来制造石英的cron 触发实例。这将设置jobDetail 之前创建,然后cron 表达式,当此作业运行时。您可以设置cron expressions as per your need. Cron expressions can be calculated from http://cronmaker.com.


· SchedulerFactoryBean*这用于创建Quartz调度程序实例,并允许注册JobDetails , Calendars,和Triggers,在初始化时自动启动调度程序,并在销毁时关闭它。


我们来看看JobLauncherDetails 班级




3

java


使用Quartz运行Spring批作业


类的executeInternal 方法QuartzJobBean 类的jobdetails,它已经设置在jobParameters,然后执行jobLauncher.run() 运行代码中所示的作业。

让我们访问ReportsConfig 班级,等级。



4

ReportsConfig.java


使用Quartz运行Spring批作业


类的主要目的是拥有与每个作业相关的配置。您将为每个作业设置一个单独的配置,如下所示。如您所见,我们创建了tasklet 在这里,我们稍后会看到。同时,我们定义并返回Job,使用JobBuilderFactory,和StepBuilderFactory。这些工厂将自动设置JobRepository为了你。


我们去ReportTasklet,这是我们的工作。




5

java


使用Quartz运行Spring批作业


类具有一个EXECUTE方法,该方法将在作业通过jobLauncher.run() 从JobLauncherDetails 班级,等级您可以定义需要在这里执行的业务逻辑。


我们需要在应用程序中进行一些配置。




6

 application.properties


使用Quartz运行Spring批作业


第一个属性需要禁用数据源-仅用于测试目的,而在生产中不需要。


第二个属性是在服务器启动之前运行作业时。为了避免这种情况,我们需要这种财产。


现在,最后,让我们转到应用程序类。这应该是不言自明的。




7

java


使用Quartz运行Spring批作业


足够的配置!让我们运行这个应用程序并查看输出。我们已经设置了cron 到1分钟。1分钟后,作业将运行。


使用Quartz运行Spring批作业


粗体行表示您的作业已成功运行并完成。这是本教程的全部内容。如果您想了解其他问题,请在下方评论。祝你学习愉快!




看到这里,你想不想踩在过来人的肩膀上,轻松实现专业技能的提升呢?不妨扫码加入java技术交流分享群,体验精彩公开课,还能免费领取更多学习资料。

使用Quartz运行Spring批作业

加入「java技术交流分享群」,开启你的技能提升之旅吧~


长按左边二维码

关注Java高级部落

使用Quartz运行Spring批作业使用Quartz运行Spring批作业


使用Quartz运行Spring批作业

   点击原文,加入Java技术交流分享群!

相关文章:

  • 2022-12-23
  • 2021-08-15
  • 2022-12-23
  • 2021-05-26
  • 2021-08-12
  • 2022-12-23
  • 2022-12-23
  • 2022-01-28
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-08
  • 2022-01-07
  • 2021-06-24
  • 2021-10-12
  • 2022-12-23
相关资源
相似解决方案