SpringBoot整合简单的定时任务~
定时任务框架很多种Quartz,SpringTask,xxljob,PowerJob...
1、JDK提供的timer
// JDK提供的
Timer timer = new Timer();
//timer.schedule(new TimerTask() {
// @Override
// public void run() {
// System.out.println("JDK提供的 timer task 执行了~");
// }
//},0);
// 指定时间执行,并且两秒执行一次
timer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("JDK提供的 timer task 执行了~");
}
}, new Date(), 2000);
2、Quartz
先导入依赖
implementation 'org.springframework.boot:spring-boot-starter-quartz:3.0.2'
定义一个你需要执行的任务
package com.qbb.quartz;
import lombok.extern.slf4j.Slf4j;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
/**
* @author startqbb (个人博客:https://www.cnblogs.com/qbbit)
* @date 2023-02-08 20:56
* @tags 喜欢就去努力的争取
*/
@Slf4j
public class QuartzBean extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
log.info("quartz task run ......");
}
}
定义一个Quartz的配置类,绑定Trigger和JobDetail
package com.qbb.quartz;
import org.quartz.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author startqbb (个人博客:https://www.cnblogs.com/qbbit)
* @date 2023-02-08 20:57
* @tags 喜欢就去努力的争取
*/
@Configuration
public class QuartzConfig {
@Bean
public JobDetail jobDetail() {
// 绑定Job
return JobBuilder
.newJob(QuartzBean.class)
.storeDurably()
.build();
}
@Bean
public Trigger trigger() {
// 绑定JobDetail
ScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0/5 * * * * ?");
return TriggerBuilder
.newTrigger()
.forJob(jobDetail())
.withSchedule(scheduleBuilder)
.build();
}
}
启动主程序
3、SpringTask
开启SpringTask定时任务
package com.qbb;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling // 开启定时任务
public class SpringbootTaskApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootTaskApplication.class, args);
}
}
在需要执行的任务上加@Scheduled
(注意需要把当前任务类交给Spring管理)
package com.qbb.springtask;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
* @author startqbb (个人博客:https://www.cnblogs.com/qbbit)
* @date 2023-02-08 21:10
* @tags 喜欢就去努力的争取
*/
@Component
@Slf4j
public class SpringTaskDemo {
@Scheduled(cron = "0/1 * * * * ?")
public void print(){
log.info("SpringTask Run ......");
}
}
TODO 整合PowerJob...
SpringBoot整合简单的定时任务~的更多相关文章
- springboot整合xxl-job分布式定时任务【图文完整版】
一.前言 定时任务有很多种,有一些大的框架也有一些简单的实现. 比如常见的: JDK的Timer和TimerTask Quartz异步任务调度框架 分布式定时任务XXL-JOB Spring Task ...
- 【spring-boot】 springboot整合quartz实现定时任务
在做项目时有时候会有定时器任务的功能,比如某某时间应该做什么,多少秒应该怎么样之类的. spring支持多种定时任务的实现.我们来介绍下使用spring的定时器和使用quartz定时器 1.我们使用s ...
- springboot整合Quartz实现定时任务
1.maven依赖: <!--quartz--> <dependency> <groupId>org.quartz-scheduler</groupId> ...
- SpringBoot整合全局异常处理&SpringBoot整合定时任务Task&SpringBoot整合异步任务
============整合全局异常=========== 1.整合web访问的全局异常 如果不做全局异常处理直接访问如果报错,页面会报错500错误,对于界面的显示非常不友好,因此需要做处理. 全局异 ...
- springboot和quartz整合实现动态定时任务(持久化单节点)
Quartz是一个完全由java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制,它支持定时任务持久化到数据库,从而避免了重启服务器时任务丢失,支持分布式多节点,大大的 ...
- SpringBoot 整合Quartz 定时任务框架
更多内容,前往 IT-BLOG 一.Scheduled 定时任务 [1]添加 Scheduled相关依赖,它是 Spring自带的一个 jar包因此引入 Spring的依赖: 1 <depend ...
- springboot整合redis(简单整理)
Redis安装与开启 我这里是在windows上练习,所以这里的安装是指在windows上的安装,操作非常简单,点击https://github.com/MicrosoftArchive/redis/ ...
- SpringBoot整合Quartz定时任务 系统job Spring Boot教程 调度任务
原文地址:https://www.cnblogs.com/allalongx/p/8477368.html 构建工程 创建一个Springboot工程,在它的程序入口加上@EnableScheduli ...
- springBoot整合MyBatise及简单应用
springBoot整合MyBatise及简单应用 我采用的是 工具IDEA 框架是springBoot+maven+Mybatise 第一步: pom.xml 引入相关jar包 <?xml v ...
- SpringBoot整合Shiro实现基于角色的权限访问控制(RBAC)系统简单设计从零搭建
SpringBoot整合Shiro实现基于角色的权限访问控制(RBAC)系统简单设计从零搭建 技术栈 : SpringBoot + shiro + jpa + freemark ,因为篇幅原因,这里只 ...
随机推荐
- WPF学习 - 动画基础(2)
上一篇文章粗略的介绍了一下Animation类.本篇介绍一下Storyboard. Storyboard,姑且翻译成"故事板"吧.实际上它是一个Animation对象的容器,可以容 ...
- Dockcer上传hub和配置国内镜像源
Dockcer上传hub和配置国内镜像源 1.Dockcer上传hub 要将本地的Docker镜像上传到Docker镜像仓库,可以按照以下步骤操作: linux环境 1.创建用户 首先,确保你已经在D ...
- Vue 搭配 Spring MVC 创建一个 web 项目
Vue 搭配 Spring MVC 创建一个 web 项目 想要写一个登录的web应用程序.页面使用Vue,后端使用Spring MVC,最终打成war包,放在tomcat下启动. 1.创建Sprin ...
- Trie字典
Trie树,又叫字典树,前缀树(Prefix Tree),单词查找树,是一种多叉树的结构. {"a","apple","appeal",&q ...
- 算法打卡|Day2 数组part02
Day2 数组part02 今日任务:977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II 目录 Day2 数组part02 今日任务:977.有序数组的平方 ,209.长度最小的 ...
- FX3U-3A-ADP模拟量和数字量之间转换
简单的例子: 0-10V对应0-8,4-20mA对应0-30 以下是对上面例子的详解: 电压: 电压(0-10V) 0-10V对应着数字量0-4000 数字量与变频器HZ量之间的关系是(4000-0) ...
- c语言代码练习5
//输入密码,正确就登录,错误重新输入,只能输入三次#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <st ...
- 基于matomo实现业务数据埋点采集上报
matomo是一款Google-analytics数据埋点采集上报的平替方案,可保护您的数据和客户的隐私:正如它官网的slogan: Google Analytics alternative that ...
- 【学习】fhq-treap
fhq-treap 是一种好写.复杂度低,且功能的优秀数据结构,涵盖了 treap 几乎所有的功能,其巧妙之处,就在于运用分离和合并两种操作代替了旋转操作. 1. BST 的定义 (摘自 OI Wik ...
- QMainWindow无法显示,使用show()不显示窗口(QT)
当使用 MainWindow w: w.show(); 不显示窗口时 变更为: MainWindow *w=new MainWindow(); w->show();