二.四 快速创建Cron 表达式
二.四.一 创建方式
将中文时间上的每一个单位从大到小排列一下,依次放置到 每一个格子上即可, 要保证各个格子的单位值是合法的,
总体也是合法的。
如, 某一个作业任务是 , 每年的2月,4月的7号和8号的9点的 15分,40分,45分时触发。
先按照从大到小排列一下:
年: 每年, *,可以省略
周: 指定了天,不能指定周, 用?
月: 2月和4月,可以写成 2,4
日: 7号和8号, 可以写成7,8 或者 7-8
时: 9点, 确切时间,9
分: 15分,40分,45分, 可以写成 15,40,45
秒: 未指定,从0开始, 表示某一分钟的最开始那一秒执行。用 0 (注意, 并不是每一秒执行哈)
那么 就可以写成: 0 15,40,45 7-8 2,4 ?
二.四.二 在线 cron 表达式网址
如果不想自己动手 写cron 表达式, 可以使用在线 cron 网站进行生成。
必应搜索 ‘cron 在线’ 之类的关键词即可:
为避免广告嫌疑,老蝴蝶这儿就不指定了。
三. 分析常见的Cron 表达式
列举一些常见的表达式,来讲解一下。
(表达式参考了 黑马教程的 Quartz框架中的 Quartz 定时任务调度文档中的内容)
四. 母亲节那一天触发的小例子
世上只有一个妈妈好,珍惜吧。 读者们,别忘记这一天给妈妈打电话,发祝福。
四.一 发送祝福 任务
//母亲节快乐的 Cron public class MyJob88 implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println("妈妈,母亲节快乐,您辛苦了!!!"); } }
四.二 祝福调度主程序
//母亲节快乐的Cron public class SchedulerDemo88 { public static void main(String[] args) throws Exception{ //获取Scheduler Scheduler scheduler= StdSchedulerFactory.getDefaultScheduler(); // 创建 JobDetail JobDetail jobDetail=JobBuilder.newJob(MyJob88.class) .withIdentity("job1","group1") .build(); //创建 Trigger Trigger trigger= TriggerBuilder.newTrigger() .withIdentity("trigger1","group1") //设置标识 .startNow() //cron 表达式为母亲节 .withSchedule(CronScheduleBuilder.cronSchedule("0 0 8 ? 5 1#2")) .build(); //关联 job和 trigger scheduler.scheduleJob(jobDetail,trigger); //启动 scheduler scheduler.start(); } }
四.三 祝福测试
2020年母亲节是5月10号, 老蝴蝶将自己本地计算机的时间改成 5月10号的7点59分。
运行程序,观看控制台的祝福:
谢谢您的观看!!!