SpringBoot中使用Quartz设置定时任务的实例详解
更新时间:2023年12月01日 09:50:06 作者:鲈鱼不会起名鸭
Quartz是OpenSymphony开源组织在任务调度领域的一个开源项目,完全基于 Java 实现,本文小编给大家介绍了SpringBoot中如何使用Quartz设置定时任务,文中通过代码示例给大家讲解的非常详细,需要的朋友可以参考下
基础使用
Quartz 的核心类有以下三部分:
- 任务 Job : 需要实现的任务类,实现
execute()
方法,执行后完成任务。 - 触发器 Trigger : 包括
SimpleTrigger
和CronTrigger
。 - 调度器 Scheduler : 任务调度器,负责基于
Trigger
触发器,来执行 Job任务。
添加依赖
<!-- 核心包 --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.0</version> </dependency> <!-- 工具包 --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-jobs</artifactId> <version>2.3.0</version> </dependency>
demo
QuartzConfig类
这个类用来进行任务描述,进行定时执行并将对应的执行逻辑类进行绑定
import org.quartz.*; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * 定义任务描述和具体的执行时间 */ @Configuration public class QuartzConfig { @Bean public JobDetail jobDetail() { //指定任务描述具体的实现类 return JobBuilder.newJob(IDCardWarningJob.class) // 指定任务的名称 .withIdentity("IDCardWarningJob") // 任务描述 .withDescription("任务描述:身份预警更新表") // 每次任务执行后进行存储 .storeDurably() .build(); } @Bean public Trigger trigger() { //创建触发器 return TriggerBuilder.newTrigger() // 绑定工作任务 .forJob(jobDetail()) // .withSchedule(CronScheduleBuilder.dailyAtHourAndMinute(1, 0)) // 设置每天凌晨1点触发一次任务 .withSchedule(CronScheduleBuilder.cronSchedule("0 0 1 * * ?")) // 设置每天凌晨1点触发一次任务 .build(); } }
demoJob类
这个类负责定时任务的逻辑处理(execute方法中写代码逻辑)
import com.alibaba.druid.support.logging.Log; import com.alibaba.druid.support.logging.LogFactory; import com.iknight.cost.service.IdentityWarningService; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.beans.factory.annotation.Autowired; public class IDCardWarningJob implements Job { private static final Log logger = LogFactory.getLog(IDCardWarningJob.class); @Autowired private IdentityWarningService service; public void setClaimPostServiceImpl(IdentityWarningService service) { this.service = service; } @Override public void execute(JobExecutionContext context) throws JobExecutionException { service.updateDate(); } }
关于cron表达式可以跳转这个连接->表达式生成器
以上就是SpringBoot中使用Quartz设置定时任务的实例详解的详细内容,更多关于SpringBoot Quartz定时任务的资料请关注脚本之家其它相关文章!
相关文章
SpringBoot集成Milvus和deeplearning4j实现图搜图功能
Milvus 是一种高性能、高扩展性的向量数据库,可在从笔记本电脑到大型分布式系统等各种环境中高效运行,Deeplearning4j(DL4J)是一个开源的深度学习框架,专门为Java和Scala开发,本文给大家介绍了SpringBoot集成Milvus和deeplearning4j实现图搜图功能2024-10-10SpringCloud项目的log4j2漏洞解决方案详解流程
很多小伙伴因为Log4j2的惊爆0Day漏洞一时束手无策,这里提供最终解决方案可以进行一个版本号的升级,感兴趣的朋友来看看吧2022-04-04
最新评论