Quartz
Quartz框架
Q:什么是quartz?
A:Quartz是一个任务调度框架,主要包括3个部分。
- 任务(Job) : 需要实现的任务类,使用execute()方法
- 触发器(Trigger):常用 SimpleTrigger和CronTrigger
- 调度器(scheduler): 负责基于触发器来执行Job
任务是具体执行逻辑,触发器是执行时间和频率,调度器是规定任务绑定哪个触发器
快速入门
导包
<!--任务调度-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
配置yml
spring:
quartz:
# 存储类型 默认是内存 这里使用数据库存储
job-store-type: jdbc
jdbc:
# 是否初始化数据库: 总是初始化
initialize-schema: always
任务(Job)
以job结尾 实现Job接口
@Slf4j
@Component
public class CallMyGirlFriendsJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
//具体执行的内容
log.info("啊你嘎多美羊羊");
}
}
触发器(Trigger)
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("girl", "call") //触发器的名称和分组
//cron 11点到12点,每5秒执行一次
.withSchedule(CronScheduleBuilder.cronSchedule("0/10 * 11-12 * * ?"))
.startNow() //立即触发
.build();
调度器(scheduler)
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
// 获取调度器实例
Scheduler scheduler = schedulerFactory.getScheduler();
// JobDetail作业实例 JobBuilder 是哪个马楼被控制
JobDetail jobDetail = JobBuilder.newJob(CallMyGirlFriendsJob.class)
.withIdentity("schedulerName", "schedulerGroup")
.build();// 设置作业名称和组
// 创建一个触发器
Trigger trigger = SimpleGetTrigger.createTrigger();
// 添加作业和触发器 绑定 把马楼和上下班时间绑定
scheduler.scheduleJob(jobDetail, trigger);
// 启动调度器
scheduler.start();
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Smile
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果