精华内容
下载资源
问答
  • quartz Cron表达式一分钟教程

    千次阅读 2018-04-17 12:13:39
    CronTriggerCronTriggers...CronTrigger,你可以指定触发的时间表如“星期五中午”,或“个工作日9:30时”,甚至“5分钟一班9:00和10:00逢星期一上午,星期三星期五“。即便如此,SimpleTrigger一样,CronT...

    CronTrigger

    CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表。

    CronTrigger,你可以指定触发的时间表如“每星期五中午”,或“每个工作日9:30时”,甚至“每5分钟一班9:00和10:00逢星期一上午,星期三星期五“。
    即便如此,SimpleTrigger一样,CronTrigger拥有的startTime指定的时间表时生效,指定的时间表时,应停止(可选)结束时间。

    Cron Expressions

    cron的表达式被用来配置CronTrigger实例。 cron的表达式是字符串,实际上是由七子表达式,描述个别细节的时间表。这些子表达式是分开的空白,代表:

    1. 1.        Seconds
    2. 2.        Minutes
    3. 3.        Hours
    4. 4.        Day-of-Month
    5. 5.        Month
    6. 6.        Day-of-Week
    7. 7.        Year (可选字段)

    例  "0 0 12 ? * WED" 在每星期三下午12:00 执行,

    个别子表达式可以包含范围, 例如,在前面的例子里("WED")可以替换成 "MON-FRI", "MON, WED, FRI"甚至"MON-WED,SAT".

    “*” 代表整个时间段.

    每一个字段都有一套可以指定有效值,如

    Seconds (秒)         :可以用数字0-59 表示,

    Minutes(分)          :可以用数字0-59 表示,

    Hours(时)             :可以用数字0-23表示,

    Day-of-Month(天) :可以用数字1-31 中的任一一个值,但要注意一些特别的月份

    Month(月)            :可以用0-11 或用字符串  “JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV and DEC” 表示

    Day-of-Week(每周):可以用数字1-7表示(1 = 星期日)或用字符口串“SUN, MON, TUE, WED, THU, FRI and SAT”表示

    “/”:为特别单位,表示为“每”如“0/15”表示每隔15分钟执行一次,“0”表示为从“0”分开始, “3/20”表示表示每隔20分钟执行一次,“3”表示从第3分钟开始执行

    “?”:表示每月的某一天,或第周的某一天

    “L”:用于每月,或每周,表示为每月的最后一天,或每个月的最后星期几如“6L”表示“每月的最后一个星期五”

    “W”:表示为最近工作日,如“15W”放在每月(day-of-month)字段上表示为“到本月15日最近的工作日”

    ““#”:是用来指定“的”每月第n个工作日,例 在每周(day-of-week)这个字段中内容为"6#3" or "FRI#3" 则表示“每月第三个星期五”

    1)Cron表达式的格式:秒 分 时 日 月 周 年(可选)。

                   字段名                 允许的值                        允许的特殊字符  
                   秒                         0-59                               , - * /  
                   分                         0-59                               , - * /  
                   小时                     0-23                               , - * /  
                   日                         1-31                               , - * ? / L W C  
                   月                         1-12 or JAN-DEC         , - * /  
                   周几                     1-7 or SUN-SAT           , - * ? / L C #  
                   年 (可选字段)     empty, 1970-2099      , - * /

     

                   “?”字符:表示不确定的值

                   “,”字符:指定数个值

                   “-”字符:指定一个值的范围

                   “/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m

                   “L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X

                   “W”字符:指定离给定日期最近的工作日(周一到周五)

                   “#”字符:表示该月第几个周X。6#3表示该月第3个周五

     

             2)Cron表达式范例:

                     每隔5秒执行一次:*/5 * * * * ?

                     每隔1分钟执行一次:0 */1 * * * ?

                     每天23点执行一次:0 0 23 * * ?

                     每天凌晨1点执行一次:0 0 1 * * ?

                     每月1号凌晨1点执行一次:0 0 1 1 * ?

                     每月最后一天23点执行一次:0 0 23 L * ?

                     每周星期天凌晨1点实行一次:0 0 1 ? * L

                     在26分、29分、33分执行一次:0 26,29,33 * * * ?

                     每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?

    展开全文
  • 表示2分钟 执行任务 0 0 0/2 * * ? 表示2小时 执行任务 0 0 2 1 * ?表示在月的1日的凌晨2点调整任务 0 15 10 ? * MON-FRI 表示周一到周五每天上午10:15执行作业 0 15 10 ? 6L 2002-2006 表示2002-2006年的...

    常用表达式例子

      

    0/2 * * * * ?   表示每2秒 执行任务(数值不能超过60,如超过好像会按最大上限执行每60秒执行一次,即最多每60秒执行一次,错误表达0/120 * * * * ?,并不会每120秒,执行一次,如需要请转化为分钟)
    
    0 0/2 * * * ?    表示每2分钟 (数值不能超过60,缘由同上)
    
    0 0 0/2 * * ?    表示每2小时 执行任务(数值不能超过24,缘由同上)
    
    0 0 2 1 * ?   表示在每月的1日的凌晨2点调整任务
    
    0 15 10 ? * MON-FRI   表示周一到周五每天上午10:15执行作业
    
    0 15 10 ? 6L 2002-2006   表示2002-2006年的每个月的最后一个星期五上午10:15执行作
    
    0 0 10,14,16 * * ?   每天上午10点,下午2点,4点 
    
    0 0/30 9-17 * * ?   朝九晚五工作时间内每半小时 
    
    0 0 12 ? * WED    表示每个星期三中午12点 (星期一 MON;星期二 TUES;星期三 WED;星期四 THUR.;星期五 FRI;星期六 SAT.;星期日 SUN)
    
    14 35 15 ? * 1,2,3,4,5,6,7  表示每周日,周一,周二,周三,周四,周四,周五,周六的15点35分14秒触发 (上一条,如果不想用英文,上面一条的可以用数字表示,注意周日认为是一周的第一天)
    
    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期间的每1分钟触发 
    
    0 0/5 14 * * ?    在每天下午2点到下午2:55期间的每5分钟触发 
    
    0 0/5 14,18 * * ?     在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 
    
    0 0-5 14 * * ?    在每天下午2点到下午2:05期间的每1分钟触发 
    
    0 10,44 14 ? 3 WED    每年三月的星期三的下午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   每月的第三个星期五上午10:15触发

    展开全文
  • Cron表达式范例: 隔5秒执行一次:*/5 * * * * ?... 隔1分钟执行一次:0 */1 * * * ? 每天23点执行一次:0 0 23 * * ? 每天凌晨1点执行一次:0 0 1 * * ? 月1号凌晨1点执行一次:0 0 1 1 * ? ...

    Cron表达式范例:

                 每隔5秒执行一次:*/5 * * * * ?
    
                 每隔1分钟执行一次:0 */1 * * * ?
    
                 每天23点执行一次:0 0 23 * * ?
    
                 每天凌晨1点执行一次:0 0 1 * * ?
    
                 每月1号凌晨1点执行一次:0 0 1 1 * ?
    
                 每月最后一天23点执行一次:0 0 23 L * ?
    
                 每周星期天凌晨1点实行一次:0 0 1 ? * L
    
                 在26分、29分、33分执行一次:0 26,29,33 * * * ?
    
                 每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?


    欢迎关注微信公众号“Java面试达人”,(id:javasuperman),收看更多精彩内容

     

    展开全文
  • 注:不涉及日历(不指定某月\天(周几)等),使用:Simple Trigger(测试代码粘贴在最后) ...隔90分钟执行一次 90*2= 180 = 3个小时 需要添加2个cron,间隔3小时 表达式: cron1 0 30 1/3 * * ? (1.30,4.30,7.30,,,,) c...

    注:不涉及日历(不指定某月\天(周几)等),使用:Simple Trigger(测试代码粘贴在最后)

    比如定时任务的需求:间隔 多少秒/分/时( 每隔99秒,每隔100分钟执行等)

     

    每隔90分钟执行一次 
        90*2= 180 = 3个小时
       需要添加2个cron,间隔3小时

    表达式:
    cron1 0 30 1/3 * * ?   (1.30,4.30,7.30,,,,)
    cron2 0 0  0/3 * * ?   (3.00,6.00,9.00,,,,)

    每隔100分钟

        100*3= 300 = 5个小时 
        需要添加3个cron,间隔5小时;

    cron1 0 40 1/5 * * ?   (1.40,6.40,11.40,,,)
    cron2 0 20 3/5 * * ?   (3.20,8.20,13.20,,,,)
    cron2 0 0  5/5 * * ?   (5.00,10.00,15.00)

    每隔2个半小时执行一次 
        150*2= 300 = 5个小时
       需要添加2个cron,间隔5小时

    表达式:
    cron1 0 30 2/5 * * ?   (2.30,7.30,12.30,,,,)
    cron2 0 0  0/5 * * ?   (5.00,10.00,15.00,,,,)

     

    受其他博文启发,一个定时任务实现不了,那这个任务,就添加多个触发时间,来实现;

    需求1:从0点开始,每隔2个半小时,执行一次
    思路记录:
     1.先列出,我们预期的执行时间:

           2.30,5.00,7.30,10.00,12.30,15:00

    2.找规律:我们知道间隔 整数(1,2,3,,,)个小时的cron表达式;根据此前提,找间隔 整数个小时 时间的规律

    3.规律结果

    (2.30,7.30,12.30,,,,)       两点半开始,间隔5小时    那么此表达式==>0 30 2/5 * * ?

    (5.00,10.00,15.00,,,,)      0点开始,间隔5小时        那么此表达式==> 0  0/5 * * ?

    需求2:在指定时间t后,启动定时任务a,

          可以采用:.再添加一个执行定时任务,动态添加那要求任务a,在那指定的时间t开始执行一次,有且只调用一次

    总结:间隔 n 个小时,执行一次

                  1.找出n和60的最小公倍数:gbs;

                  2.gbs除60=间隔时间tt       (tt<23?)

                 3.gbs除n=cron表达式个数

    附加表达式在线测试网站:  http://cron.qqe2.com/ 

    注意:粘贴我们自己写的表达cron表达式,查看运行结果时,得核对一下表达式是否被修改;我就遇到  0/3 变===>0-3

     

    Simple Trigger:在具体的时间点执行一次,或者在具体的时间点执行,并且以指定的间隔重复执行若干次

    package com.yqy.quartz;
    
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.concurrent.TimeUnit;
    
    import org.quartz.Job;
    import org.quartz.JobBuilder;
    import org.quartz.JobDetail;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    import org.quartz.Scheduler;
    import org.quartz.SchedulerException;
    import org.quartz.SchedulerFactory;
    import org.quartz.SimpleScheduleBuilder;
    import org.quartz.Trigger;
    import org.quartz.TriggerBuilder;
    import org.quartz.impl.StdSchedulerFactory;
    
    public class SimpleJobTest implements Job{
    	
        public static void main(String[] args) throws SchedulerException, InterruptedException {
            // 1、创建调度器Scheduler
            SchedulerFactory schedulerFactory = new StdSchedulerFactory();
            Scheduler scheduler = schedulerFactory.getScheduler();
            // 2、创建JobDetail实例,并与需要执行的job类绑定(Job执行内容),测试:所以我直接写在了本类
            JobDetail jobDetail = JobBuilder.newJob(SimpleJobTest.class)
                                            .withIdentity("job1", "group1").build();
            // 3、构建Trigger实例,每隔100s执行一次
            Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "triggerGroup1")
                    .startNow()//立即生效
                    .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                    .withIntervalInSeconds(100)//每隔100s执行一次
    //                .withIntervalInMinutes(100)//每隔100分钟执行一次
                    .repeatForever()).build();//一直执行
    
            //4、执行
            scheduler.scheduleJob(jobDetail, trigger);
            System.out.println("--------scheduler start ! ------------");
            scheduler.start();
            //睡眠
    //        TimeUnit.MINUTES.sleep(1);//睡眠1分钟
    //        scheduler.shutdown();
    //        System.out.println("--------scheduler shutdown ! ------------");
        }
        //执行某任务
         @Override
         public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
             String printTime = new SimpleDateFormat("yy-MM-dd HH:mm:ss").format(new Date());
             System.out.println("任务执行时间:"+printTime);
         }
    }
    //更多SimpleTrigger使用请查看:  https://www.w3cschool.cn/quartz_doc/quartz_doc-67a52d1f.html
    

     

    展开全文
  • 隔1分钟执行一次:0 */1 * * * ? 每天23点执行一次:0 0 23 * * ? 每天凌晨1点执行一次:0 0 1 * * ? 月1号凌晨1点执行一次:0 0 1 1 * ? 月最后一天23点执行一次:0 0 23 L * ? 每周星期天凌晨1点...
  • cron表达式每隔90分钟

    万次阅读 2019-09-16 15:01:29
    最近项目开发中,遇到隔90分钟,获取一次数据并更新保存。 百度了一堆,找到个靠谱的。 分成2类触发规则来写,可以解决。 /** * 定时任务:隔90秒获取并更新 */ @Scheduled(cron = “0 0/3 * * * ?”) @...
  • 因为玩cron有一段时间,长久以来困扰我的一个问题: 怎么用cron实现40分钟执行一次? 之前用了几种实现方案:0 0/40 * * * ? 0 40-40 * * * ? 0 */40 * * * ? 但是都不能实现。 一次想到在技术群里问一下,然后一个...
  • cron每小时执行一次表达式

    千次阅读 2021-03-07 11:18:25
    cron每小时执行一次表达式 常用表达式例子 (1)0/2 * * * * ? 表示2秒 执行任务   (1)0 0/2 * * * ? 表示2分钟 执行任务   (1)0 0 2 1 * ? 表示在月的1日的凌晨2点调整任务   (2)0 15 ...
  • cron表达式,几种常见的时间周期,每分钟,每小时,每天,每周,每月,每季度,每年 String MONTH = "0 0 0 1 * ?"; String DAY = "0 0 0 * * ?"; String WEEK = "0 0 0 ? * MON"; String YEAR = "0 0 0 1 ...
  • 2.月10号9点15分钟执行任务 0 15 9 10 * ? 其它规则附录表 表示式 说明0 0 12 * * ? 每天12点运行0 15 10 ? * * 每天10:15运行0 15 10 * * ? 每天10:15运行0 15 10 * * ? * 每天10:15运行0 15 10 * * ? ...
  • java cron 100分钟执行一次

    万次阅读 2019-05-31 16:11:27
    100分钟执行一次 cron表达式: 0 40 0/2 * * ? 补充点信息: 秒 0-59 , - * / 分 0-59 , - * / 小时 0-23 , - * / 日 1-31 , - * ? / L W C 月 1-12 or JAN-DEC , - * / 周几 1-7 or SUN-SAT , -...
  • (3)-:表示范围,例如在Minutes域使用5-20,表示从5分到20分钟每分钟触发一次 (4)/:表示起始时间开始触发,然后每隔固定时间触发一次,例如在Minutes域使用5/20,则意味着5分钟触发一次,而25,45等分别触发一次. (5)...
  • cron生成表达式Java版

    2019-01-27 16:24:43
    Cron Expressions——Cron 表达式 按顺序依次为 秒(0~59) 分钟(0~59) 小时(0~23) 天(月)(0~31,但是你需要考虑你月的天数) 月(0~11) 天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,...
  • SpringBoot 定时任务cron表达式详解

    千次阅读 2019-11-28 16:17:43
    cron表达式 顺序 秒 分钟 小时 日期 月份 星期 年(可选) 取值 0-59 0-59 0-23 1-30(31) 1-12 1-7 允许特殊字符 , - * / , - * / , - * / , - * / ? L W C , - * / , - * / L # C 1970-2099 , - * / 字段含义 *:...
  • 每天,每周,cron表达式

    千次阅读 2020-05-17 12:11:03
    其中个元素可以是个值(如6),个连续区间(9-12),个间隔时间(8-18/4)(/表示隔4小时),个列表(1,3,5),通配符。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中个设置?. 0 0 10,14,16 * *
  • Initialization of bean failed; nested exception is ...关于Spring定时任务月最后天 corn表达式使用L 报错 可以使用如下解决办法: 首先,月最后天可能为(28,29,30,31)这几天只需要在这几天调度程序,在.
  • springboot使用定时任务,根据cron表达式执行定时任务,比如设置了小时执行一次,但是不会立即执行一次。 解决方式: 增加@PostConstruct注解,如下: 启动服务可以立即执行一次。 ...
  • cron表达式详解,cron表达式写法,cron表达式例子

    万次阅读 多人点赞 2018-01-03 12:55:09
    先了解个位置代表的含义,在了解个位置允许的范围,以及一些特殊写法,还有常用的案例,足够你掌握cron表达式
  • cron 表达式 1小时30分钟执行一次

    万次阅读 热门讨论 2018-01-05 15:42:51
    cron表达式: 0 30 0/1 * * ? 服了百度的不靠谱搜索,自己本来想懒省事,结果还是靠自己。 谢谢c友指正 。
  • Java定时任务Cron表达式

    千次阅读 2019-11-08 11:32:05
    @Scheduled(cron = “0 30 6-22 ? * *”) 顺序 秒 分钟 小时 日期 月份 星期 年(可选) 取值 0-59 0-59 0-23 1-30(31) 1-12 1-7 允许特殊字符 , - * / , - * / , - * / , - * / ? L W C , - * / , - * / L # C 1970-...
  • Cron表达式个字符串,字符串以空格隔开,分为5或6个域,每一个域代表个含义,系统支持的表达式格式如下(DayofWeek 为可选域。): Seconds Minutes Hours DayofMonth Month [DayofWeek] 1 二、字段含义...
  • Java:详解Cron表达式的使用

    千次阅读 2019-04-11 16:38:46
    Cron表达式个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表个含义,Cron有如下两种语法格式: Seconds Minutes Hours DayofMonth Month DayofWeek Year Seconds Minutes Hours DayofMonth ...
  • /** * @Classname CronUtil * @Description TODO * @Date 2019/7/30 17:39 * @Created by zhangzhenjun */ public class CronUtil { /** * *方法摘要:构建Cron表达式 *@param taskScheduleModel *@return String *...
  • cron表达式

    2020-12-30 10:21:29
    cron表达式由7位组成,1位之间用空格隔开,7位分别代表: 秒 分 时 日(期) 月 周(几) 年(此位也可省略) 每一位可以是数字,也可以是如下格式(入门): 符号 含义 说明 * 秒位为 * ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,191
精华内容 6,476
关键字:

cron表达式每分钟一次