• Quartz1.8.5例子(八)


    /* 
     * Copyright 2005 - 2009 Terracotta, Inc. 
     * 
     * Licensed under the Apache License, Version 2.0 (the "License"); you may not 
     * use this file except in compliance with the License. You may obtain a copy 
     * of the License at 
     * 
     *   http://www.apache.org/licenses/LICENSE-2.0 
     *   
     * Unless required by applicable law or agreed to in writing, software 
     * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 
     * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 
     * License for the specific language governing permissions and limitations 
     * under the License.
     * 
     */
    
    package org.quartz.examples.example8;
    
    import java.util.Date;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.quartz.Job;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    
    /**
     * <p>
     * This is just a simple job that gets fired off many times by example 1
     * </p>
     * 
     * @author Bill Kratzer
     */
    public class SimpleJob implements Job {
    
        private static Logger _log = LoggerFactory.getLogger(SimpleJob.class);
    
        /**
         * Empty constructor for job initilization
         */
        public SimpleJob() {
        }
    
        /**
         * <p>
         * Called by the <code>{@link org.quartz.Scheduler}</code> when a
         * <code>{@link org.quartz.Trigger}</code> fires that is associated with
         * the <code>Job</code>.
         * </p>
         * 
         * @throws JobExecutionException
         *             if there is an exception while executing the job.
         */
        public void execute(JobExecutionContext context)
            throws JobExecutionException {
    
            // This job simply prints out its job name and the
            // date and time that it is running
            String jobName = context.getJobDetail().getFullName();
            _log.info("SimpleJob says: " + jobName + " executing at " + new Date());
        }
    
    }
    

      

    /* 
     * Copyright 2005 - 2009 Terracotta, Inc. 
     * 
     * Licensed under the Apache License, Version 2.0 (the "License"); you may not 
     * use this file except in compliance with the License. You may obtain a copy 
     * of the License at 
     * 
     *   http://www.apache.org/licenses/LICENSE-2.0 
     *   
     * Unless required by applicable law or agreed to in writing, software 
     * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 
     * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 
     * License for the specific language governing permissions and limitations 
     * under the License.
     * 
     */
    
    package org.quartz.examples.example8;
    
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    
    import org.quartz.JobDetail;
    import org.quartz.Scheduler;
    import org.quartz.SchedulerFactory;
    import org.quartz.SchedulerMetaData;
    import org.quartz.SimpleTrigger;
    import org.quartz.examples.example2.SimpleJob;
    import org.quartz.TriggerUtils;
    import org.quartz.impl.StdSchedulerFactory;
    import org.quartz.impl.calendar.AnnualCalendar;
    import org.slf4j.LoggerFactory;
    import org.slf4j.Logger;
    
    /**
     * This example will demonstrate how calendars can be used 
     * to exclude periods of time when scheduling should not
     * take place.
     * 
     */
    public class CalendarExample {
    
        public void run() throws Exception {
            final Logger log = LoggerFactory.getLogger(CalendarExample.class);
    
            log.info("------- Initializing ----------------------");
    
            // First we must get a reference to a scheduler
            SchedulerFactory sf = new StdSchedulerFactory();
            Scheduler sched = sf.getScheduler();
    
            log.info("------- Initialization Complete -----------");
    
            log.info("------- Scheduling Jobs -------------------");
    
            // Add the holiday calendar to the schedule
            AnnualCalendar holidays = new AnnualCalendar();
    
            // fourth of July (July 4)
            Calendar fourthOfJuly = new GregorianCalendar(2005, 6, 4);
            holidays.setDayExcluded(fourthOfJuly, true);
            // halloween (Oct 31)
            Calendar halloween = new GregorianCalendar(2005, 9, 31);
            holidays.setDayExcluded(halloween, true);
            // christmas (Dec 25)
            Calendar christmas = new GregorianCalendar(2005, 11, 25);
            holidays.setDayExcluded(christmas, true);
    
            // tell the schedule about our holiday calendar
            sched.addCalendar("holidays", holidays, false, false);
            
    
            // schedule a job to run hourly, starting on halloween
            // at 10 am
            Date runDate = TriggerUtils.getDateOf(0,0, 10, 31, 10);
            JobDetail job = new JobDetail("job1", "group1", SimpleJob.class);
            SimpleTrigger trigger = new SimpleTrigger("trigger1", "group1", 
                    runDate, 
                    null, 
                    SimpleTrigger.REPEAT_INDEFINITELY, 
                    60L * 60L * 1000L);
            // tell the trigger to obey the Holidays calendar!
            trigger.setCalendarName("holidays");
            
            // schedule the job and print the first run date
            Date firstRunTime = sched.scheduleJob(job, trigger);
            
            // print out the first execution date.
            // Note:  Since Halloween (Oct 31) is a holiday, then
            // we will not run unti the next day! (Nov 1)
            log.info(job.getFullName() +
                    " will run at: " + firstRunTime +  
                    " and repeat: " + trigger.getRepeatCount() + 
                    " times, every " + trigger.getRepeatInterval() / 1000 + " seconds");
            
            // All of the jobs have been added to the scheduler, but none of the jobs
            // will run until the scheduler has been started
            log.info("------- Starting Scheduler ----------------");
            sched.start();
    
            // wait 30 seconds:
            // note:  nothing will run
            log.info("------- Waiting 30 seconds... --------------");
            try {
                // wait 30 seconds to show jobs
                Thread.sleep(30L * 1000L); 
                // executing...
            } catch (Exception e) {
            }
            
            
            // shut down the scheduler
            log.info("------- Shutting Down ---------------------");
            sched.shutdown(true);
            log.info("------- Shutdown Complete -----------------");
    
            SchedulerMetaData metaData = sched.getMetaData();
            log.info("Executed " + metaData.getNumberOfJobsExecuted() + " jobs.");
    
        }
    
        public static void main(String[] args) throws Exception {
    
            CalendarExample example = new CalendarExample();
            example.run();
        }
    
    }
    

      

  • 相关阅读:
    MapReduce 中的Map后,sort不能对中文的key排序
    wordCount程序中MapReduce工作过程分析
    使用eclipse的快捷键自动生成的map或者reduce函数的参数中:“org.apache.hadoop.mapreduce.Reducer.Context context”
    "hadoop namenode -format"命令的作用和影响的文件
    伪分布模式下使用java接口,访问hdfs
    MySQL Server 5.5.44免安装版配置详解
    quartz Cron表达式一分钟教程
    【转载】jQuery弹出层始终垂直居中于当前屏幕
    LeetCode 151 翻转字符串里的单词
    LeetCode 43 字符串相乘
  • 原文地址:https://www.cnblogs.com/wuxinliulei/p/5177740.html
Copyright © 2020-2023  润新知