quartz3

quartz API 接口部分

Scheduler : 与调度程序进行交互的主要API,包括启动,暂停,显示

Job :调度程序执行的组件实现的接口(每次调用都会启用一个线程)

JobDetail : 用于定义作业的实例

Trigger : 定义执行给定作业的计划的组件,包括执行周期、时间、方式

JobBuilder : 用于定义/构建JobDetail实例,它定义了作业的实例

TriggerBuilder : 用于定义/构建触发器实例

第一个例子

public class HelloJob implements Job{

    private static Logger log = org.slf4j.LoggerFactory.getLogger(HelloJob.class);

    public void execute(JobExecutionContext arg0) throws JobExecutionException {

        log.info("hello World" + new Date());
    }

}
public class SimpleDemo {

    public void run() throws SchedulerException{
        Logger log = LoggerFactory.getLogger(SimpleDemo.class);
        //  初始化调度
        SchedulerFactory sf = new StdSchedulerFactory();
        Scheduler sched = sf.getScheduler();

        // 反射加载实现Job接口的HelloJob类
        JobDetail job = JobBuilder.newJob(HelloJob.class).withIdentity("job1", "group1").build();

        // 运行时间   每分钟运行一次
        Date runTime = DateBuilder.evenMinuteDateBefore(new Date());
        Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1").startAt(runTime).build();
        sched.scheduleJob(job, trigger);

        // 调度开始
        sched.start();
        // 主线程关闭65s, 此期间触发不了
        try {
            Thread.sleep(65L*1000L);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        // 调度关闭
        sched.shutdown();
    }


    public static void main(String[] args) throws SchedulerException {
        SimpleDemo demo = new SimpleDemo();
        demo.run();
    }


}
    格式: [秒] [分] [小时] [日] [月] [周] [年]
        0 0 12 * * ?           每天12点触发
        0 15 10 ? * *          每天1015分触发
        0 15 10 * * ?          每天1015分触发 
        0 15 10 * * ? *        每天1015分触发 
        0 15 10 * * ? 2005     2005年每天1015分触发
        0 * 14 * * ?           每天下午的 2点到259分每分触发
        0 0/5 14 * * ?         每天下午的 2点到259分(整点开始,每隔5分触发) 
        0 0/5 14,18 * * ?        每天下午的 18点到1859分(整点开始,每隔5分触发)

        0 0-5 14 * * ?            每天下午的 2点到205分每分触发
        0 10,44 14 ? 3 WED        3月分每周三下午的 210分和244分触发
        0 15 10 ? * MON-FRI       从周一到周五每天上午的1015分触发
        0 15 10 15 * ?            每月15号上午1015分触发
        0 15 10 L * ?             每月最后一天的1015分触发
        0 15 10 ? * 6L            每月最后一周的星期五的1015分触发
        0 15 10 ? * 6L 2002-20052002年到2005年每月最后一周的星期五的1015分触发

        0 15 10 ? * 6#3           每月的第三周的星期五开始触发
        0 0 12 1/5 * ?            每月的第一个中午开始每隔5天触发一次
        0 11 11 11 11 ?           每年的11111111分触发(光棍节)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章