coding
統統最代碼的gravatar頭像
統統最代碼2016-02-19 14:59:55

Spring與Quartz集成配置實現簡單定時任務調度

一.代碼結構圖

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">


打賞

文件名: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
頂部客服微信二維碼底部
>掃描二維碼關注最代碼為好友掃描二維碼關注最代碼為好友
2008大乐透走势图