J2EE企業級定時調度

企業級定時調度常用的有3種:

  • JDK自帶的併發框架

  • 開源的Quartz調度框架

  • 基於前面兩種進行封裝的SPRING定時調度框架

調度方式:

  1. JDK自帶的併發框架
    ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor( );
    scheduler.scheduleAtFixedRate(new Runnable() {
        @Override
        public void run() {
            }
    }, 10, 2, TimeUnit.MILLISECONDS);
  1. 開源的Quartz調度框架:

    scheduler.scheduleJob(jobDetail, trigger);
  2. SPRING定時調度框架:
    SPRING對前面兩種進行了簡化封裝,尤其是第一種;

對JDK併發框架的封裝,對源碼感興趣的可以查看ScheduledAnnotationBeanPostProcessor和ScheduledTaskRegistrar的源碼

配置舉例:

<task:scheduled-tasks>  
        <task:scheduled ref="logImpTask" method="impActionLogToDb"  
            fixed-delay="5000" />  
    </task:scheduled-tasks> 

ref含義:spring容器的beanId

method含義:調用的方法

fixed-delay:每隔多少時間調用(單位秒)

cron :cron表達式

對QUARTZ的封裝,對源碼感興趣的可以查看SchedulerFactoryBean源碼;
通過@Autowired Scheduler scheduler;引用Scheduler後,調用quartz的相關方法,可以根據實際需要動態的增刪調度。

除此之外還有分佈調度,充分利用多節點優勢進行任務計算,如:噹噹網的elasticjob

發佈了120 篇原創文章 · 獲贊 82 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章