使用Quartz运行Spring批作业

640?wx_fmt=gif

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


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


640?wx_fmt=jpeg


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


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

640?wx_fmt=png

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




1

BatchConfiguration.java


640?wx_fmt=jpeg


我们一个接一个地去:

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

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

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

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

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

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

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

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

我们现在去上进口课。




2

BatchJobesDetailedConfiguration.java


640?wx_fmt=jpeg


让我们深入研究一下:

· 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


640?wx_fmt=jpeg


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

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



4

ReportsConfig.java


640?wx_fmt=jpeg


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


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




5

java


640?wx_fmt=jpeg


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


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




6

 application.properties


640?wx_fmt=png


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


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


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




7

java


640?wx_fmt=png


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


640?wx_fmt=jpeg


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




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

640?wx_fmt=png

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


长按左边二维码

关注Java高级部落

640?wx_fmt=jpeg 640?wx_fmt=png


640?wx_fmt=gif

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值