<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的漫漫程序之旅

    專注于JavaWeb開發
    隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
    數據加載中……

    Quartz高級部分JobStore

    JobStore是用來保存你的工作數據的.永遠不要在你的代碼中使用
    JobStore,它都是通過屬性文件來配置的.

    下面我們做一個RAMJobStore的 例子.

    建一個job:

    package com;

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.quartz.Job;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;

    public class PropJob implements Job
    {
        
    private static final Log log = LogFactory.getLog(PropJob.class);
        
        
        
    public void execute(JobExecutionContext context) throws JobExecutionException
        
    {
            System.out.println(
    "begin:::::");
            log.info(
    "job is begin:" + context.getTrigger().getName());
        }


    }

    測試類:

    package com;

    import java.util.Calendar;

    import org.quartz.JobDetail;
    import org.quartz.Scheduler;
    import org.quartz.SchedulerFactory;
    import org.quartz.SimpleTrigger;
    import org.quartz.impl.StdSchedulerFactory;

    public class PriorityDemo
    {
        
    public void run() throws Exception
        
    {
            
    // 從屬性文件中讀取工程池信息
            SchedulerFactory sf = new StdSchedulerFactory(
                    
    "src/com/quartz.properties");
            Scheduler scheduler 
    = sf.getScheduler();
            JobDetail job 
    = new JobDetail("propJob"null, PropJob.class);
            Calendar startTime 
    = Calendar.getInstance();
            
    // 在當前時間上加5秒
            startTime.add(Calendar.SECOND, 5);
            
    /**
             * String name, String group, String jobName, String jobGroup, Date
             * startTime, Date endTime, int repeatCount, long repeatInterval
             
    */

            
    // 每5秒一次
            SimpleTrigger trigger1 = new SimpleTrigger("trigger1"null, startTime
                    .getTime(), 
    null15L * 1000L);
            trigger1.setPriority(
    -5);
            trigger1.setJobName(
    "propJob");
            
    // 每10秒一次
            SimpleTrigger trigger2 = new SimpleTrigger("trigger2"null, startTime
                    .getTime(), 
    null110L * 1000L);
            trigger2.setJobName(
    "propJob");
            
    // 每15秒一次
            SimpleTrigger trigger3 = new SimpleTrigger("trigger3"null, startTime
                    .getTime(), 
    null115L * 1000L);
            trigger3.setPriority(
    10);
            trigger3.setJobName(
    "propJob");
            
    // 安排工作計劃
            scheduler.scheduleJob(job, trigger1);
            scheduler.scheduleJob(trigger2);
            scheduler.scheduleJob(trigger3);
            
    // 任務開始
            scheduler.start();
            
    // 休息30秒
            Thread.sleep(30L * 1000L);
            
    // 關閉
            scheduler.shutdown();
        }


        
    public static void main(String[] args)
        
    {
            PriorityDemo priorityDemo 
    = new PriorityDemo();
            
    try
            
    {
                priorityDemo.run();
            }
     catch (Exception e)
            
    {
                e.printStackTrace();
            }

        }


    }


    輸出結果:
    2008-5-9 10:45:13 org.quartz.core.SchedulerSignalerImpl <init>
    信息: Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
    2008-5-9 10:45:13 org.quartz.core.QuartzScheduler <init>
    信息: Quartz Scheduler v
    .1.6.1-RC1 created.
    2008-5-9 10:45:13 org.quartz.simpl.RAMJobStore initialize
    信息: RAMJobStore initialized.
    2008-5-9 10:45:13 org.quartz.impl.StdSchedulerFactory instantiate
    信息: Quartz scheduler 'PriorityDemoScheduler' initialized from the specified file : 'src/com/quartz.properties'
    2008-5-9 10:45:13 org.quartz.impl.StdSchedulerFactory instantiate
    信息: Quartz scheduler version: 
    1.6.1-RC1
    2008-5-9 10:45:13 org.quartz.core.QuartzScheduler start
    信息: Scheduler PriorityDemoScheduler_$_NON_CLUSTERED started.
    2008-5-9 10:45:18 com.PropJob execute
    信息: job is begin:trigger3
    2008-5-9 10:45:18 com.PropJob execute
    信息: job is begin:trigger2
    2008-5-9 10:45:18 com.PropJob execute
    信息: job is begin:trigger1
    begin:::::
    begin:::::
    begin:::::
    2008-5-9 10:45:23 com.PropJob execute
    信息: job is begin:trigger1
    begin:::::
    2008-5-9 10:45:28 com.PropJob execute
    信息: job is begin:trigger2
    begin:::::
    begin:::::
    2008-5-9 10:45:33 com.PropJob execute
    信息: job is begin:trigger3
    2008-5-9 10:45:43 org.quartz.core.QuartzScheduler shutdown
    信息: Scheduler PriorityDemoScheduler_$_NON_CLUSTERED shutting down.
    2008-5-9 10:45:43 org.quartz.core.QuartzScheduler standby
    信息: Scheduler PriorityDemoScheduler_$_NON_CLUSTERED paused.
    2008-5-9 10:45:43 org.quartz.core.QuartzScheduler shutdown
    信息: Scheduler PriorityDemoScheduler_$_NON_CLUSTERED shutdown complete.


    我們的屬性文件已經被正確讀取.
    有人可能會對
    org.quartz.scheduler.instanceName=PriorityExampleScheduler
    產生疑問,PriorityDemoScheduler這個類是不存在的,
    其實你只要在你的job類后面加上Scheduler就可以了.

    posted on 2008-05-09 10:51 々上善若水々 閱讀(3218) 評論(0)  編輯  收藏 所屬分類: opensource

    主站蜘蛛池模板: 亚洲欧美国产欧美色欲| 亚洲不卡1卡2卡三卡2021麻豆| 亚洲小说图区综合在线| 2021免费日韩视频网| 久久国产亚洲精品无码| 日韩精品极品视频在线观看免费| 久久久久亚洲精品美女| 久久久久国色av免费看| 亚洲精品国产免费| 无码区日韩特区永久免费系列| 亚洲一级毛片免费观看| 性感美女视频免费网站午夜| 亚洲GV天堂无码男同在线观看| 日韩精品免费一区二区三区| 无遮挡呻吟娇喘视频免费播放| 亚洲精品高清一二区久久| 伊人免费在线观看| 久久精品亚洲中文字幕无码麻豆| 亚洲美女免费视频| 亚洲精品国产精品| 久久激情亚洲精品无码?V| 免费在线中文日本| 亚洲国产超清无码专区| 成人毛片免费播放| 一级女性全黄久久生活片免费| 亚洲AV无码专区国产乱码4SE| 57pao国产成视频免费播放| 亚洲大成色www永久网址| 国产成人免费网站在线观看| 国产精品午夜免费观看网站| 精品亚洲永久免费精品| 波多野结衣免费在线观看| 在线观看亚洲专区| 亚洲综合在线另类色区奇米| h视频在线免费看| 麻豆69堂免费视频| 亚洲黄色三级网站| 免费人成在线观看播放国产| 在线观看免费黄色网址| 中文字幕在线观看亚洲日韩| 中文字幕日韩亚洲|