首页 > 编程知识 正文

springboot怎么实现线路管理,springboot定时器使用教程

时间:2023-05-03 19:24:22 阅读:267579 作者:3269

IEDA基于Spring Boot项目服务搭建QuartzJobBean实现定时任务调度(包含服务目录结构)详解

文章目录 IEDA基于Spring Boot项目服务搭建QuartzJobBean实现定时任务调度(包含服务目录结构)详解前言一、什么是QuartzJobBean任务调度?二、创建项目包含项目结构1.创建新的项目 三、代码实现任务调度项目结构图1、第一步 导入依赖2、第二步 创建配置类3、第三步 创建业务逻辑执行类4、第四步 启动项目验证 总结


前言

Spring Boot是由Pivotal团队(Spring项目组)提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,在实际的工作当中,经常要用到定时去操作一下任务,例如:数据的定时备份,用户的定时短信发送,定时刷新缓存等等。下面介绍实现任务调度的方式。


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是QuartzJobBean任务调度?

QuartzJobBean是一个定时器的基础类,在SpringBoot项目中要是想实现通过定时任务去执行一些任务,就要通过QuartzJobBean配置配去实现(不唯一)。

二、创建项目包含项目结构 1.创建新的项目

点击 + Create New Project 创建新的项目

选中1、Spring Initializr 2、 钩住Default
然后点击 Next

Group:项目坐标
Artifact: 注册中心服务的项目名称
然后点击 Next

选择SpringBoot版本,涉及你引入的依赖版本否则会报错。

添加操作数据库的依赖,MySQL驱动依赖、JPA依赖

然后点击 Finish

项目创建成功

1.项目配置Maven
点击 File ----> Settings

配置Maven:File —> Settings —> Build, Execution, Deployment —> Build Tools —> Maven
User settings file:你maven服务的conf文件夹的settings.xml文件
Local repository:本地仓库的路径(存放从中央仓库、阿里云镜像下载的Jar包)

三、代码实现任务调度 项目结构图

1、第一步 导入依赖

如果SpringBoot版本是2.0.0以后的,则在spring-boot-starter中已经包含了quart的依赖,则可以直接使用spring-boot-starter-quartz依赖:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId></dependency>

如果是1.5.9则要使用以下添加依赖:

<!--quzrtz任务调度 核心包--><dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version></dependency> <!--工具包 可有可无--><dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-jobs</artifactId> <version>2.3.2</version></dependency> 2、第二步 创建配置类

创建JobConfiguration配置类,加载Bean或者通过Spring.xml中去配置装入Bean管理。

package com.job.config;import com.job.comm.yewuDataSyncJob;import org.quartz.*;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;/** * @author Mr.Zhx * @version 1.0 * @program: zhxjob * @description: 定时任务配置类 * @create: 2021-12-24 12:53 */@Configurationpublic class JobConfiguration { private static final int TIME = 5; // 更新频率 5秒 // JobDetail @Bean public JobDetail weatherDataSyncJobDetail() { return JobBuilder.newJob(yewuDataSyncJob.class).withIdentity("yewuDataSyncJob") .storeDurably().build(); } // Trigger @Bean public Trigger weatherDataSyncTrigger() { SimpleScheduleBuilder schedBuilder = SimpleScheduleBuilder.simpleSchedule() .withIntervalInSeconds(TIME).repeatForever(); return TriggerBuilder.newTrigger().forJob(weatherDataSyncJobDetail()) .withIdentity("weatherDataSyncTrigger").withSchedule(schedBuilder).build(); }} 3、第三步 创建业务逻辑执行类

创建yewuDataSyncJob业务类并继承QuartzJobBean,重写executeInternal()方法,在方法体写业务实现逻辑

package com.job.comm;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.scheduling.quartz.QuartzJobBean;import java.text.SimpleDateFormat;import java.util.Date;/** * @author Mr.Zhx * @version 1.0 * @program: zhxjob * @description: 创建定时任务的类继承 * @create: 2021-12-24 12:49 */public class yewuDataSyncJob extends QuartzJobBean { private final static Logger logger = LoggerFactory.getLogger(yewuDataSyncJob.class); @Override protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { //写你的业务逻辑 logger.info("***********************处理定时任务的业务逻辑 Start ***********************"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss:SSS'Z'"); String format1 = format.format(new Date()); System.out.println("小新新最帅!!当前系统时间:" + format1); logger.info("***********************处理定时任务的业务逻辑 End ***********************"); }} 4、第四步 启动项目验证

点击启动类

效果结果图

可以看到间隔5秒执行业务逻辑,你就可以实现数据备份、刷新缓存(Redis)、发送短信、定时查询等等业务。

cron表达式详解

时间允许值范围允许的特殊字符秒0~59, - * /分0~59, - * /小时0~23, - * /日期1-31, - * ? / L W C月份1~12或者JAN-DEC, - * /星期1~7或者SUN-SAT, - * ? / L C #年(可选)留空,1970~2099, - * /

在线cron表达式生成:http://qqe2.com/cron/index


总结

如果你的项目当中要实现任务调度,以上代码融合到你的项目当中即可,然后根据你的业务你封装一下使用,避免代码过于臃肿,要学会灵活变通,避免代码侵入性过高。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。