一、Quartz介绍
quartz(开源项目)
Quatz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jbs这样复杂的程序。Jobs可以做成标准的Java组件或EJBs。Quartz的最新版本为Quartz 2.3.0。
官网:http://www.quartz-scheduler.org/
二、Quartz框架的使用思路
1)job – 任务 – 你要做什么事?
2)Trigger – 触发器 – 你什么时候去做?
3)Scheduler – 任务调度 – 你什么时候需要去做什么事?
三、SpringBoot整合Quartz框架
pom.xml文件添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
1.自定义一个Job
/**
* 任务类
*/
@Component
public class QuartzDemo{
//任务
@Override
public void printTime() throws JobExecutionException {
System.out.println("现在时刻:"+new Date());
}
}
2.编写quartz配置类
@Configuration
public class QuartzConfig {
@Bean//job:干什么事
public MethodInvokingJobDetailFactoryBean methodInvokingJobDetailFactoryBean(
QuartzDemo quartzDemo){
MethodInvokingJobDetailFactoryBean JobDetailFactoryBean = new
MethodInvokingJobDetailFactoryBean();
JobDetailFactoryBean.setTargetObject(clearImgJob);
JobDetailFactoryBean.setTargetMethod("printTime");
return JobDetailFactoryBean;
}
@Bean//trigger:什么时候
public CronTriggerFactoryBean cronTriggerFactoryBean(
MethodInvokingJobDetailFactoryBean JobDetailFactoryBean){
CronTriggerFactoryBean triggerFactoryBean = new CronTriggerFactoryBean();
triggerFactoryBean.setCronExpression("0/1 * * * * ?");
triggerFactoryBean.setJobDetail(JobDetailFactoryBean.getObject());
return triggerFactoryBean;
}
@Bean//scheduler:什么时候干什么事
public SchedulerFactoryBean schedulerFactoryBean(
CronTriggerFactoryBean triggerFactoryBean){
SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
schedulerFactoryBean.setTriggers(triggerFactoryBean.getObject());
return schedulerFactoryBean;
}
}
3.编写启动类
@SpringBootApplication
public class QuartzTestApp {
public static void main(String[] args) {
SpringApplication.run(QuartzTestApp.class,args);
}
}
查看控制台
运行启动类,观察控制台,可以发现每隔1秒会输出一次,说明每隔1秒自定义 Job被调用一次。
四、Corn表达式
Cron 表达式是一个字符串,分为 6 或 7 个域,每一个域代表一个含义
Cron 有如下两种语法格式:
(1)Seconds Minutes Hours Day Month Week Year
(2)Seconds Minutes Hours Day Month Week
1.结构
corn 从左到右(用空格隔开):秒 分 小时 月份中的日期 月份 星期中的日期 年份
2.cron表达式
字段含义:
示例:
?
“?”字符只在日期域和星期域中使用。它被用来指定“非明确的值”。
例如:
想在每月的20日触发调度0 0 0 20 * ?,而且只能使用如下写法:0/1 0 0 20 * ?。其中最后一位只能用?,而不能使 用*,因为*表示不管星期几都会触发恰好与20冲突。
五、Cron表达式在线生成器
前面介绍了cron表达式,但是自己编写表达式还是有一些困难的,我们可以借助一些 cron表达式在线生成器来根据我们的需求生成表达式即可。
原文地址:https://blog.csdn.net/ughbnbjkk/article/details/135786749
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_60889.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!