corn表达式——用于设置定时任务

http://www.cronmaker.com/  cron表达式验证网站

(2)corn表达式

CronTrigger配置完整格式为: [] [] [小时] [] [] [] []

字段

 

允许值

 

允许的特殊字符

 

0-59

 

, - * /

 

0-59

 

, - * /

小时

 

0-23

 

, - * /

日期

 

1-31

 

, - * ? / L W C

月份

 

1-12 或者 JAN-DEC

 

, - * /

星期

 

1-7 或者 SUN-SAT

 

, - * ? / L C #

年(可选)

 

留空, 1970-2099

 

, - * /

表示所有值。在分钟里表示每一分钟触发。在小时,日期,月份等里面表示每一小时,每一日,每一月。

?表示不指定值。表示不关心当前位置设置的值。 比如不关心是周几,则周的位置填写?。

表示区间。小时设置为10-12表示10,11,12点均会触发。

,表示多个值。 小时设置成10,12表示10点和12点会触发。

表示递增触发。 5/15表示从第5秒开始,每隔15秒触发。

表示最后的意思。 日上表示最后一天。星期上表示星期六或7。 L前加数据,表示该数据的最后一个。

  星期上设置6L表示最后一个星期五。  6表示星期五

W表示离指定日期最近的工作日触发。15W离该月15号最近的工作日触发。

#表示每月的第几个周几。 6#3表示该月的第三个周五

表达式意义 
"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:102: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触发 
每天早上6     0 6 * * *     每两个小时     0 */2 * * * 
晚上11点到早上8点之间每两个小时,早上八点    0 23-7/28 * * * 
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11     0 11 4 * 1-3 
11日早上4     0 4 1 1 *

6eclipse异常关闭 导致tomcat 6.0 无法重启

   由于MyEclipse的异常关闭从而导致Tomcat并没有关闭,所以再次启动Tomcat当然是无法启动的啦,解决方法:在任务管理器中关闭一个叫javaw.exe的进程,如果你这时已经启动了MyEclipse,那么你的任务管理器中会有两个javaw.exe进程,关闭那个占用内存少的就可以了。

Java中,我们可以使用Quartz框架来实现数据驱动的cron表达式,并配置定时任务。Quartz是一个开源的任务调度框架,它允许你在Java应用中方便地安排和管理定期执行的工作。 以下是基本步骤: 1. **添加依赖**:首先,在你的项目中引入Quartz和Spring的依赖,如果使用Spring Boot,可以在pom.xml文件中添加: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency> ``` 2. **配置启动类**:在Spring Boot的启动类中,启用Quartz集成: ```java @SpringBootApplication @EnableScheduling // 开启Spring的调度功能 public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 3. **编写Job和Trigger**:你需要创建一个实现了`org.quartz.Job`接口的类,代表你要执行的具体任务。然后,创建一个`org.quartz.Trigger`实例,其中包含cron表达式,如 `@Scheduled(cron = "0 0/5 * * * ?")` 表示每五分钟执行一次。 4. **数据绑定**:你可以将cron表达式存储在一个配置文件(如application.properties或application.yml)里,或者数据库表中,使用Spring的`@Value`注解从外部获取表达式。例如: ```properties # application.properties quartz.cron.expression=mydataDrivenCronExpression ``` 然后在配置类中读取并注入到触发器中: ```java @Configuration public class QuartzConfig { @Autowired private Environment env; @Bean(destroyMethod = "stop") public SimpleScheduleBuilder simpleSchedule() { return SimpleScheduleBuilder.simpleSchedule() .withIntervalInMilliseconds(5 * 60 * 1000) // 每5分钟执行 .repeatForever(); // 无限循环 } @Bean public Trigger myTrigger() { String cronExp = env.getProperty("quartz.cron.expression"); CronTrigger trigger = (CronTrigger) TriggerBuilder.newTrigger() .withIdentity("myTrigger", "defaultGroup") .usingJobData("cronExpression", cronExp) .forJob(myJob()) .build(); return trigger; } @Bean(name = "myJob") public MyJob myJob() { return new MyJob(); } } ``` 5. **执行任务**:`MyJob`类需要实现`Job`接口,并覆盖`execute()`方法,这里就是实际执行的任务代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值