zoukankan      html  css  js  c++  java
  • 使用Cron表达式创建定时任务

    CronTrigger
    CronTrigger功能非常强大,是基于日历的作业调度,而SimpleTrigger是精准指定间隔,所以相比SimpleTrigger,CroTrigger更加常用。CroTrigger是基于Cron表达式的,先了解下Cron表达式:
    由7个子表达式组成字符串的,格式如下:

    [秒] [分] [小时] [日] [月] [周] [年]

    Cron表达式的语法比较复杂,
    如:* 30 10 ? * 1/5 *
    表示(从后往前看)
    [指定年份] 的[ 周一到周五][指定月][不指定日][上午10时][30分][指定秒]

    又如:00 00 00 ? * 10,11,12 1#5 2018
    表示2018年10、11、12月的第一周的星期五这一天的0时0分0秒去执行任务。

    下面是给的一个例子:


    可通过在线生成Cron表达式的工具:http://cron.qqe2.com/ 来生成自己想要的表达式。 

    public class HelloScheduler{
        public static void main(String[] args) throws SchedulerException, InterruptedException {
            // 1、创建调度器Scheduler
            SchedulerFactory schedulerFactory = new StdSchedulerFactory();
            Scheduler scheduler = schedulerFactory.getScheduler();
            // 2、创建JobDetail实例,并与PrintWordsJob类绑定(Job执行内容)
            JobDetail jobDetail = JobBuilder.newJob(PrintWordsJob.class)
                    .usingJobData("jobDetail1", "这个Job用来测试的")
                    .withIdentity("job1", "group1").build();
            // 3、构建Trigger实例,每隔1s执行一次
            Date startDate = new Date();
            startDate.setTime(startDate.getTime() + 5000);
    
            Date endDate = new Date();
            endDate.setTime(startDate.getTime() + 5000);
    
            CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "triggerGroup1")
                    .usingJobData("trigger1", "这是jobDetail1的trigger")
                    .startNow()//立即生效
                    .startAt(startDate)
                    .endAt(endDate)
                    .withSchedule(CronScheduleBuilder.cronSchedule("* 30 10 ? * 1/5 2018"))
                    .build();
    
            //4、执行
            scheduler.scheduleJob(jobDetail, cronTrigger);
            System.out.println("--------scheduler start ! ------------");
            scheduler.start();
        }
    }
    

      

  • 相关阅读:
    CALL FUNCTION 'BAPI_GOODSMVT_CREATE'-(物料凭证创建)
    SAP邮件
    sap人员编制
    ABAP 日期栏函数
    SAP建数据库索引
    去前导零
    SD相关的表
    php 使用 file_exists 还是 is_file
    FastAdmin 的 CRUD 不支持层级模型
    使用 Visual Studio Code (VSCODE)写 C51 (持续更新 2018-04-09)
  • 原文地址:https://www.cnblogs.com/zhou-test/p/10143121.html
Copyright © 2011-2022 走看看