• Java Quartz用法


    code:

    这里的MyJob必须是public,这里Job实例化的时候要用到反射,必须是public的,不能与调度操作放同一个.java文件中。

    package com.qhong;
    
    import org.quartz.Job;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    
    /**
     * Created by Administrator on 2017/3/14 0014.
     */
    public class MyJob implements Job {
        @Override
        //把要执行的操作,写在execute方法中
        public void execute(JobExecutionContext arg0) throws JobExecutionException {
            DateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
            System.out.println("测试Quartz"+ df.format(Calendar.getInstance().getTime()));
        }
    }

    Main:

    package com.qhong;
    
    
    import org.quartz.*;
    import org.quartz.impl.StdSchedulerFactory;
    
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.*;
    import java.util.Calendar;
    
    public class Main {
        public static void main(String[] args) {
    
            DateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
            System.out.println("开始时间:"+ df.format(Calendar.getInstance().getTime()));
    
            //通过schedulerFactory获取一个调度器
            SchedulerFactory schedulerfactory = new StdSchedulerFactory();
            Scheduler scheduler = null;
            try {
    //      通过schedulerFactory获取一个调度器
                scheduler = schedulerfactory.getScheduler();
    
    //       创建jobDetail实例,绑定Job实现类
    //       指明job的名称,所在组的名称,以及绑定job类
                JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("job1", "jgroup1").build();
    
    
    //       定义调度触发规则
    
    //      使用simpleTrigger规则
    //        Trigger trigger=TriggerBuilder.newTrigger().withIdentity("simpleTrigger", "triggerGroup")
    //                        .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(1).withRepeatCount(8))
    //                        .startNow().build();
    //      使用cornTrigger规则  每天10点42分
                Trigger trigger = TriggerBuilder.newTrigger().withIdentity("simpleTrigger", "triggerGroup")
                        .withSchedule(CronScheduleBuilder.cronSchedule("0/15 * * * * ? *"))
                        .startNow().build();
    
    //       把作业和触发器注册到任务调度中
                scheduler.scheduleJob(job, trigger);
    
    //       启动调度
                scheduler.start();
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    Result:

    开始时间:2017-03-14 15:12:53:516
    测试Quartz2017-03-14 15:13:00:005
    测试Quartz2017-03-14 15:13:15:001
    测试Quartz2017-03-14 15:13:30:002
    测试Quartz2017-03-14 15:13:45:049
    测试Quartz2017-03-14 15:14:00:008
    测试Quartz2017-03-14 15:14:15:001
    测试Quartz2017-03-14 15:14:30:008
    测试Quartz2017-03-14 15:14:45:005
    测试Quartz2017-03-14 15:15:00:002
    测试Quartz2017-03-14 15:15:15:000

    http://www.cnblogs.com/jiaoyiping/archive/2013/05/20/3088092.html

    http://blog.csdn.net/yuebinghaoyuan/article/details/9045471

    http://www.cnblogs.com/yelongsan/p/6373778.html

  • 相关阅读:
    使用Unity5.1进行VR开发的配置(最新的未必是最好的!!!)
    从单幅深度图识别人体姿态
    工作中编写存储过程小记
    【积累】根据CheckBox的不选中 ,用JQuery 清除 RidaoButtonList 的选中项
    【积累】LinqToSql复合查询结果转DataTable数据
    MSSSQL 脚本收藏
    VS2010历史记录清理
    PowerDesigner16工具学习笔记-建立CDM
    Android 安装过程中的问题
    Unity3D集成SVN进行版本控制
  • 原文地址:https://www.cnblogs.com/hongdada/p/6548675.html
Copyright © 2020-2023  润新知