zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    通过SQL Server 2008数据库复制实现数据库同步备份
    SQL Server进制
    Server2008+SQL2008 日志读取代理器未运行 进程无法在“WINXXX”上执行“sp_replcmds”
    swing中使用皮肤包
    JTextArea的自动定位最后一行
    JFrame如何设置背景图片
    swing中单击回车相当于点击登录
    execute、executeUpdate、executeQuery三者的区别(及返回值)
    JTable设置透明
    在eclipse中导入android项目
  • 原文地址:https://www.cnblogs.com/hongdada/p/6548675.html
Copyright © 2011-2022 走看看