快速掌握定时任务处理

定时任务

在项目中存在一种操作,这个操作需要在未来的某一天开始执行,不需要人定时到时候再去写,而是提前写好定时进行执行

在java项目中提供有对应的API,下面就是java中原始的操作


public class shijian {public static void main(String[] args) {//创建一个定时对象Timer timer=new Timer();//创建一个任务对象,通过重写抽象方法run,在其中定义任务操作TimerTask task=new TimerTask() {@Overridepublic void run() {System.out.println("定时任务的执行");}};//通过方法完成定时任务操作,第一个参数是任务对象,第二个是起始时间,第三个参数是需要等待周期的时间timer.schedule(task,0,2000);}
}

但是由于提供的API太过于简单,现在市场上推出了流行的定时任务技术:Quartz

Quartz相关概念:
工作(job):用于定义具体执行的工作
工作明细(jobdetil):用于描述定时工作相关的信息
触发器(Trigger):用于描述触发工作的规则,通常使用cron表达式定义调度规则
调度器(Scheduler):描述了工作明细与触发器的关系

首先导入依赖:

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

然后写一个继承自QuartzJobBean的工作类,其中可以定义工作操作:

public class testquartz extends QuartzJobBean {@Overrideprotected void executeInternal(org.quartz.JobExecutionContext context) throws JobExecutionException {System.out.println("开始执行");}
}

其中的参数JobExecutionContext context是一个工作的上下文对象,通过这个对象可以获取工作时的一些信息

触发器需要绑定工作明细,工作明细中指定工作,在控制类中进行两者的绑定:


@Configuration
public class Quartztest {@Bean//返回类型时工作明细接口,此处绑定工作public JobDetail bangding(){//JobBuilder建立一个工作明细,参数是工作对应的类名.storeDurably()是判断如果长期不使用该方法,是否持久化return JobBuilder.newJob(testquartz.class).storeDurably().build();}@Bean//返回类型触发器,此处绑定工作明细public Trigger mingxi(){//通过Cron表达式描述任务时间并创建调度器对象,000表示秒,分钟,小时 000表示日,月,星期,但是星期一般是?意思是根据前方进行匹配ScheduleBuilder<? extends Trigger> schedBuilder=CronScheduleBuilder.cronSchedule("0 0 0 0 0 0");//通过触发器构造类创建一个触发器,绑定工作明细,并配置调度器对象return TriggerBuilder.newTrigger().forJob(bangding()).withSchedule(schedBuilder).build();}
}

Spring Task

通过注解完成上述繁杂的内容
首先通过注解开启定时任务功能:

@SpringBootApplication
@EnableScheduling
public class springboot22TaskApplication{public static void main(String[] args){}
}

然后再在所需要的方法上面添加注解 @Scheduled

@Component
public class ScheduledBean{@Scheduled(cron="0/5 * * * * ?")public void printLog(){System.out.println(Thread.currentThread().getName()+"run..")}
}

同时在spring可以对task进行一定的配置:

spring:task:scheduling:#任务调度线程池大小pool:size: 1# 调度线程名称前缀thread-name-prefix: ssm_shutdown:#线程池关闭时等待所有任务完成await-termination: false# 调度线程关闭前最大的等待时间,确保最后一定关闭await-termination: 10s

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/813463.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ytorch深度学习完整GPU图像分类代码

1. CPU与GPU不同 1.输入数据 2.网络模型 3.损失函数 .cuda() 说明&#xff1a;下面代码中GPU版本中取消下划线的即为CPU版本 2.完成的分类代码(GPU) import torch import torchvision from torch.utils.tensorboard import SummaryWriter# from model import * # 准备数据集 …

SpringBoot3整合Mybatis plus

Java版本&#xff1a;17 Spring Boot版本&#xff1a;3.1.10 Mybatis plus版本&#xff1a;3.5.5 源码地址&#xff1a;Gitee仓库 01 创建我们的项目工程 首先&#xff0c;我们创建一个maven工程spring-boot3-demo&#xff0c;pom文件配置如下。 这里我们将spring-boot-start…

【python】基于librosa库提取音频特征

一、源码 import librosa audio_path ./audio.mp3 audio, sr librosa.load(audio_path) # 提取音频信号的时域特征 amplitude librosa.amplitude_to_db(librosa.stft(audio), refnp.max) # 提取音频信号的频域特征 mfccs librosa.feature.mfcc(audio, srsr) # 提取音频信号…

视频号小店好做吗?普通人没有货源,也可以做吗?

大家好&#xff0c;我是电商糖果 视频号小店作为2022年才出来的电商黑马项目&#xff0c;吸引了不少正在找创业项目的朋友。 这里面也有很多没有接触过电商&#xff0c;没有货源的普通人。 于是不少朋友就问糖果&#xff0c;如果普通人没有货源可以做吗&#xff1f;小店好做…

JCYZ H3CNE-RS+

JCYZ H3CNE-RS 20240413 20240413 https://www.h3c.com/cn/ 支持–软件下载–其他产品–模拟器官方下载 人才研学中心—技术认证—电子资料 按范围划分&#xff1a;局域网 城域网 广域网 按拓扑结构划分&#xff1a;总线型 环型 星型 树型 全网状 部分网状&#xff08;优缺点&a…

简单好用的SaaS知识库工具都在这了,看完赶紧收藏!

在信息飞速发展的今天&#xff0c;企业如何有效地管理海量的信息和知识成为了提高工作效率的关键。SaaS知识库工具正成为企业寻求的解决方案&#xff0c;它们不仅能够帮助团队组织文档&#xff0c;而且优化知识分享流程。现在就让我们来看看市场上几款简单又好用的SaaS知识库工…

佛山分公司迎来重要指导蒋书记一行及杭州区域分公司领导共襄盛举

近日&#xff0c;佛山分公司迎来了一场重要的指导活动。蒋书记携夫人&#xff0c;以及助理黄显文和公司工作人员施晓燕等一行领导莅临佛山分公司&#xff0c;为公司的未来发展提供了宝贵的指导意见。同时&#xff0c;江浙福地区的杭州区域分公司负责人白棋元总和朱建江总也亲临…

宝藏免费音乐软件LX music

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 宝藏免费音乐软件LX music 前言LX Music的特色功能&#xff1a;音乐播放的新境界安装与配置&#xff1a;在不同平台上使用LX Music下载页面 主题定制 本文将深入研究LX Music&#xff0c;一款备受欢迎…

socat神器解密:网络数据传输的利器

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 socat神器解密&#xff1a;网络数据传输的利器 前言socat简介基本用法常见功能常见功能&#xff1a;1. 端口转发和数据重定向&#xff1a;2. 加密和解密数据流&#xff1a; 高级功能1. 代理服务器和隧…

力扣 | 160. 相交链表

import ListNodeInfo.ListNode;import java.util.HashSet; import java.util.Set;public class Problem_160_IntersectionOfTwoLinkedList {//双指针方法 public ListNode getIntersectionListNode(ListNode headA, ListNode headB){if(headA null || headB null) return nul…

MemberPress配置和使用会员登录页面

目录 隐藏 创建会员登录页面 编辑登录页面 设计您的登录页面 链接到您的登录页面 创建会员登录页面 要创建MemberPress会员登录页面&#xff0c;您需要做的就是导航到 MemberPress > 设置 > 页面选项卡&#xff0c;然后在页面顶部附近的“MemberPress 登录页面”…

【VUE】使用Vue和CSS动画创建滚动列表

使用Vue和CSS动画创建滚动列表 在这篇文章中&#xff0c;我们将探讨如何使用Vue.js和CSS动画创建一个动态且视觉上吸引人的滚动列表。这个列表将自动滚动显示项目&#xff0c;类似于轮播图的方式&#xff0c;非常适合用于仪表盘、排行榜或任何需要在有限空间内展示项目列表的应…

【Python使用】python高级进阶知识md总结第8篇:TCP 网络应用程序开发流程,1. TCP 网络应用程序开发流程的介绍【附代码文档】

python高级进阶全知识知识笔记总结完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;操作系统&#xff0c;虚拟机软件。ls命令选项&#xff0c;mkdir和rm命令选项。压缩和解压缩命令&#xff0c;文件权限命令。编辑器 vim&#xff0c;软件安装。获取进程编号…

docker安装es和kibana

1.创建网络 docker network create es-net 2.下载镜像 docker pull elasticsearch:7.12.1 docker pull kibana:7.12.1 docker pull mobz/elasticsearch-head:5 3.运行容器 docker run -d \ --restartalways --name es7 \ -e "ES_JAVA_OPTS-Xms512m -Xmx512m" …

B站大数据平台元数据业务分享

背景介绍 元数据是数据平台的衍生数据&#xff0c;比如调度任务信息&#xff0c;离线hive表&#xff0c;实时topic&#xff0c;字段信息&#xff0c;存储信息&#xff0c;质量信息&#xff0c;热度信息等。在数据平台建设初期&#xff0c;这类数据主要散落于各种平台子系统的数…

Ubuntu22.04安装Opencv + opencv_contrib(v4.9.0)

需下载两个文件&#xff1a; opencv-4.9.0.tar.gzopencv_contrib-4.9.0.tar.gz 将上述文件上传到如下目录 rootf5b3d2a6bf04:/opencv# pwd /opencv rootf5b3d2a6bf04:/opencv# ll total 149036 drwxrwxr-x 2 1000 1000 4096 Apr 8 10:07 ./ drwxr-xr-x 1 root root …

【智能算法应用】哈里斯鹰算法(HHO)在WSN覆盖中的应用

目录 1.算法原理2.数学模型3.结果展示4.参考文献 1.算法原理 【智能算法】哈里斯鹰算法&#xff08;HHO)原理及实现 【智能算法应用】猎人猎物优化算法&#xff08;HPO&#xff09;在WSN覆盖中的应用 2.数学模型 3.结果展示 HPO设置区域边长为20&#xff0c;节点数为35&…

redis的三种工作模式

Redis 简介 Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的高性能键值对&#xff08;key-value&#xff09;存储系统。它支持多种数据结构&#xff0c;如字符串、列表、集合、有序集合和哈希&#xff0c;并且提供了丰富的功能&#xff0c;包括数据持久化…

C语言 08 类型转换

一种类型的数据转换为另一种类型的数据&#xff0c;这种操作称为类型转换。 类型转换分为自动类型转换和强制类型转换。 自动类型转换 比如现在希望将一个 short 类型的数据转换为 int 类型的数据&#xff1a; #include <stdio.h>int main(){short s 10;// 直接将s的…

2024洗地机名牌排行榜:细数最值得买的4大热门款

传统的清洁地面方式往往费时费力&#xff0c;容易导致腰酸背痛等不适&#xff0c;给人们带来一系列家务问题。然而&#xff0c;随着洗地机、扫地机器人、吸尘器等电动清洁工具的出现&#xff0c;清洁变得更加轻松便捷&#xff0c;受到了广大用户的欢迎。身为一名有着多年家居经…