<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

    主站蜘蛛池模板: 亚洲粉嫩美白在线| 色老板亚洲视频免在线观| 成人免费视频一区二区| 全免费一级毛片在线播放| 亚洲区视频在线观看| 成人在线免费看片| 亚洲专区中文字幕| 在线观看免费人成视频色9| wwwxxx亚洲| 在线观看免费大黄网站| 亚洲国产精品成人午夜在线观看 | 99在线视频免费观看视频| 久久精品国产亚洲AV忘忧草18 | 亚洲成aⅴ人片在线观| 亚洲黄色免费电影| 亚洲不卡影院午夜在线观看| 成全影视免费观看大全二| 国产亚洲综合一区二区三区| 亚洲人成电影网站国产精品 | 1000部羞羞禁止免费观看视频| 亚洲欧洲精品视频在线观看| 成人午夜视频免费| 免费无码国产在线观国内自拍中文字幕| 久久精品国产亚洲精品| 免费视频精品一区二区三区| 亚洲国产日韩在线| 亚洲AV中文无码乱人伦在线视色| 久久久久久噜噜精品免费直播| 亚洲综合国产精品| 日本人的色道www免费一区| 三级黄色在线免费观看| 亚洲精品视频久久| 国产国产人免费视频成69大陆| 亚洲一级片免费看| ass亚洲**毛茸茸pics| 亚洲成a人片在线观看老师| 美丽姑娘免费观看在线观看中文版| 久久精品国产亚洲AV忘忧草18 | 九一在线完整视频免费观看| 亚洲国产综合91精品麻豆| 日韩毛片无码永久免费看|