首页 > 编程语言 > 详细

Spring整合Quartz轻松完成定时任务了解一下?

时间:2020-12-06 11:43:41      阅读:24      评论:0      收藏:0      [点我收藏+]
一、背景

  上次我们介绍了如何使用Spring Task进行完成定时任务的编写,这次我们使用Spring整合Quartz的方式来再一次实现定时任务的开发,以下奉上开发步骤及注意事项等。

二、开发环境及必须jar包依赖

1.开发环境

  • Spring 4.2.6.RELEASE
  • Maven 3.3.9
  • JDK 1.7
  • Idea 15.04
    2.必不可少jar包依赖

技术分享图片

三、开发步骤

【1】.基于特定基类

 1. 编写任务类,该类需要继承自QuartzJobBean

技术分享图片
2.在spring配置文件中配置作业类JobDetailFactoryBean、作业调度的触发方式(触发器)、调度工厂
技术分享图片

注意:

1).org.springframework.scheduling.quartz.JobDetailBean有两个属性.

jobClass属性即我们在java代码中定义的任务类.

jobDataAsMap属性即该任务类中需要注入的属性值.

2).Quartz的作业触发器有两种(两种任选其一就行)

org.springframework.scheduling.quartz.SimpleTriggerFactoryBean:只支持按照一定频度调用任务,如每隔30分钟运行一次.
org.springframework.scheduling.quartz.CronTriggerFactoryBean:支持到指定时间运行一次,如每天12:00运行一次等.

关于第二种触发器的Cron表达式,请参见另一篇博客:摆脱Spring 定时任务的@Scheduled cron表达式的困扰

3).org.springframework.scheduling.quartz.SchedulerFactoryBean的参数triggers指定的就是之前配置的触发器的名字.

3.运行结果
技术分享图片

【2】.不基于特定的基类

 1.编写任务调度类
技术分享图片

2.在spring配置文件中配置作业类MethodInvokingJobDetailFactoryBean、作业调度的触发方式(触发器)、调度工厂
技术分享图片

注意:MethodInvokingJobDetailFactoryBean,有两个关键属性:

  targetObject指定任务类.

  targetMethod指定运行的方法.

3.运行结果
技术分享图片

四、总结

  Quartz属于重量级的定时任务框架,我们一般都会选择轻量级的如Spring Task定时任务进行开发,但是遇到比较棘手的,这也是一种解决问题的方式。

Spring整合Quartz轻松完成定时任务了解一下?

原文:https://blog.51cto.com/15047484/2560323

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!