• Quartz实现定期运行程序(Java)



    package
    Quartz; import java.text.SimpleDateFormat; import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class MyJob implements Job { @Override public void execute(JobExecutionContext arg0) throws JobExecutionException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); System.out.println("当前时间为:" + sdf.format(new Date())); System.out.println("hello world"); } }
    package Quartz;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.quartz.CronScheduleBuilder;
    import org.quartz.CronTrigger;
    import org.quartz.JobDetail;
    import org.quartz.Scheduler;
    import org.quartz.SchedulerFactory;
    import org.quartz.impl.StdSchedulerFactory;
    
    import static org.quartz.JobBuilder.newJob;
    import static org.quartz.TriggerBuilder.newTrigger;
    import static org.quartz.CronScheduleBuilder.cronSchedule;
    
    public class TimeUpdate {
        public void go() throws Exception {
            // 首先,必需获得一个schedular
            SchedulerFactory sf = new StdSchedulerFactory();
            Scheduler scheduler = sf.getScheduler();
    
            // job1将每隔20秒执行一次
            JobDetail job = newJob(MyJob.class).withIdentity("job1", "group1")
                    .build();
            CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1")
                    .withSchedule(cronSchedule("0/20 * * * * ?")).build();
            Date ft = scheduler.scheduleJob(job, trigger);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
            System.out.println(job.getKey() + " 已被安排执行于: " + sdf.format(ft)
                    + ",并且以如下重复规则重复执行: " + trigger.getCronExpression());
            scheduler.start();
        }
    
        public static void main(String[] args) throws Exception {
            TimeUpdate test = new TimeUpdate();
            test.go();
        }
    }

    /* 
    -------------------------------------- 
        0 0 12 * * ?            每天12点触发 
        0 15 10 ? * *           每天10点15分触发 
        0 15 10 * * ?           每天10点15分触发 
        0 15 10 * * ? *         每天10点15分触发 
        0 15 10 * * ? 2005      2005年每天10点15分触发 
        0 * 14 * * ?            每天下午的 2点到2点59分每分触发 
        0 0/5 14 * * ?          每天下午的 2点到2点59分(整点开始,每隔5分触发) 
        0 0/5 14,18 * * ?       每天下午的 2点到2点59分(整点开始,每隔5分触发) 每天下午的 18点到18点59分(整点开始,每隔5分触发) 
        0 0-5 14 * * ?          每天下午的 2点到2点05分每分触发 
        0 10,44 14 ? 3 WED      3月分每周三下午的 2点10分和2点44分触发 
        0 15 10 ? * MON-FRI     从周一到周五每天上午的10点15分触发 
        0 15 10 15 * ?          每月15号上午10点15分触发 
        0 15 10 L * ?           每月最后一天的10点15分触发 
        0 15 10 ? * 6L          每月最后一周的星期五的10点15分触发 
        0 15 10 ? * 6L 2002-2005    从2002年到2005年每月最后一周的星期五的10点15分触发 
        0 15 10 ? * 6#3         每月的第三周的星期五开始触发 
        0 0 12 1/5 * ?          每月的第一个中午开始每隔5天触发一次 
        0 11 11 11 11 ?         每年的11月11号 11点11分触发(光棍节) 
    -------------------------------------- 
     */  

    在线Cron 表达式生成器地址为:http://www.pdtools.net/tools/becron.jsp 

  • 相关阅读:
    SpringMVC的文件上传
    关于SringMvc的参数的传递
    Myeclipse配置mybatis的xml自动提示
    SSM配置
    sql中truncate 、delete与drop区别
    局部变量和全局变量的调用
    java中 引用类型 和 基本类型 有何区别?
    mysql--select
    网站建设注意要点
    输入域名之后默认首页跳转到其他链接去
  • 原文地址:https://www.cnblogs.com/Michael2397/p/7821289.html
Copyright © 2020-2023  润新知