Spring与Quartz集成配置实现简单定时任务调度

时间:2022-03-21 07:57:43

可以说是最好的一篇定时任务的介绍

来自:http://www.zuidaima.com/share/2736623139458048.htm


一.代码结构图

Spring与Quartz集成配置实现简单定时任务调度

二.核心类

Job: 一个接口, 它里面只有一个方法void execute(),我们需要执行任务就需要实现这个接口,在execute中实现我们要做的事情。
JobDetail: 在Quartz每次执行Job时,都需要创建一个Job实例,所以它直接接受一个实现类以便运行时实例化,还需要一个描述信息,

JobDetail就是做这个事情。
Trigger: 是一个抽象类,描述触发执行的时间,它主要有SimpleTrigger和CronTrigger这两个子类,当仅需触发一次或者以固定时间间隔周期执行,SimpleTrigger是最适合的选择;而CronTrigger则可以通过Cron表达式定义出各种复杂时间规则的调度方案:如每早晨9:00执行,周一、周三、周五下午5:00执行等。
Scheduler: 可以认为是quartz的调度器,我们把JobDetail和Trigger注册到Scheduler,由它调度运行。

三.各部分代码截图

1.applicationContext.xml

Spring与Quartz集成配置实现简单定时任务调度

2.MyJob.java

Spring与Quartz集成配置实现简单定时任务调度

四.spring与quartz集成版本问题

  出现:Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class的原因是Spring 3.0版本中内置的Quartz版本是<2.0的,在使用最新的Quartz包(>2.0)之后,接口不兼容。

解决方法:

1.将<bean name="myJobtTask" class="org.springframework.scheduling.quartz.JobDetailBean">改为:

<bean name="myJobtTask" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">

2.将<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">改为:

​<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">

Spring与Quartz集成配置实现简单定时任务调度5个评论Spring与Quartz集成配置实现简单定时任务调度5个牛币任务调度 文件名:springQuartz.rar,文件大小:6997.86K下载
  • /
      • /springQuartz
        • /springQuartz/.classpath
        • /springQuartz/.project
          • /springQuartz/.settings
            • /springQuartz/.settings/org.eclipse.jdt.core.prefs
          • /springQuartz/bin
            • /springQuartz/bin/applicationContext.xml
              • /springQuartz/bin/com
                  • /springQuartz/bin/com/zjt
                      • /springQuartz/bin/com/zjt/quartz
                        • /springQuartz/bin/com/zjt/quartz/MyJob.class
                        • /springQuartz/bin/com/zjt/quartz/Test.class
            • /springQuartz/bin/quartz.properties
          • /springQuartz/lib
            • /springQuartz/lib/commons-collections-3.2.1.jar
            • /springQuartz/lib/commons-logging-1.1.3.jar
            • /springQuartz/lib/jta-1.1.jar