java spring定时任务-动态任务

news2024/9/20 20:26:16

cron表达式

在线生成https://cron.qqe2.com/
6个时间刻度的话 * * * * * * 分别对应 秒 分 时 日 月 星期 ;
7个时间刻度的话 * * * * * * * 分别对应 秒 分 时 日 月 星期 年;

每隔5秒执行一次:*/5 * * * * ?
每隔1分钟执行一次:0 */1 * * * ?
每天22点执行一次:0 0 22 * * ?
每天凌晨1点执行一次:0 0 1 * * ?
每月1号凌晨1点执行一次:0 0 1 1 * ?
每月最后一天21点执行一次:0 0 21 L * ?
每周星期天凌晨1点实行一次:0 0 1 ? * L
在12分、13分、14分执行一次:0 12,13,14 * * * ?
每天的0点、3点、5点、7点都执行一次:0 0 0, 3,5,7 * * ? 

定时任务

import com.google.common.base.Objects;
import com.netcom.nkestate.common.Constant;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

@Service
@EnableScheduling
public class LicenseTasks {

    @Scheduled(cron = "*/2 * * * * ?")
    public static void run() {
        System.out.println(11111);
    }
}

动态任务

package com.netcom.nkestate.services.action;

import com.netcom.nkestate.common.Constant;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.Trigger;
import org.springframework.scheduling.TriggerContext;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.scheduling.support.CronTrigger;

import java.util.Date;


@Configuration //1.主要用于标记配置类,兼备Component的效果。
@EnableScheduling // 2.开启定时任务,如果在XXXApplication类中添加了此注解这里可以不写
public class CompleteSchedule implements SchedulingConfigurer {


    /**
     * 执行定时任务.
     */
    @Override
    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
        taskRegistrar.addTriggerTask(
                //1.添加任务内容(Runnable)
                new MyRunnable(),
                //2.设置执行周期(Trigger)
                new MyTrigger()
        );
    }
    class MyTrigger implements Trigger {
        @Override
        public Date nextExecutionTime(TriggerContext triggerContext) {
            // 定时
            String licenseScheduledTaskDate = Constant.licenseScheduledTaskCRON;
            return new CronTrigger(licenseScheduledTaskDate).nextExecutionTime(triggerContext);
        }
    }
    class MyRunnable implements Runnable {
        public void run() {
            // 线程的具体逻辑
            System.out.println("执行动态定时任务: "  );
        }
    }

}


在这里插入图片描述

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

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

相关文章

AI如何辅助未来数学研究:陶哲轩的最新见解与应用展望

随着人工智能(AI)技术的飞速发展,AI在多个领域的应用已经渗透到了我们生活的方方面面。然而,在严谨且逻辑性极强的数学研究领域,AI能否真正发挥作用?2024年,著名数学家、菲尔兹奖得主陶哲轩在IM…

【Nacos】配置中心

Nacos除了注册中心和负载均衡之外,还是一个配置中心,具备配置管理的功能。 Nacos 配置中心是一种用于集中式管理应用程序配置的服务,它可以将应用程序的配置从代码和本地配置文件中分离出来,实现配置的集中管理和动态更新。通过 …

刘润《关键跃升》读书笔记7

沟通: 想明⽩,说清楚,能接受 团队沟通的正确⽅式可以⽤9个字来概括:想明⽩,说清楚,能接受 (⻅图4-1)想明⽩ 有时经理跟⼈沟通,讲完之后却⽆奈地对员⼯说,你怎…

远程访问电脑共享文件

远程访问电脑共享文件,可以通过多种方法实现,每种方法都有其特点和适用场景。以下是一些常见的方法及其步骤: 一、使用Microsoft远程桌面 启用远程桌面: 在目标电脑上,打开“开始”菜单,选择“设置”>“…

常见概念 -- WDM/OTN 时延

什么是时延? 在通信网络中,时延指原始数据经一台转发设备的编码等一系列处理过程后由发送端发送,通过传输链路传输,到达另一台(目的地)设备的接收端并解码还原为原始数据所花费的时间。网络时延主要由以下几…

多维时序 | Matlab基于TCN-Transformer+LSTM双输入神经网络时间序列预测

多维时序 | Matlab基于TCN-TransformerLSTM双输入神经网络时间序列预测 目录 多维时序 | Matlab基于TCN-TransformerLSTM双输入神经网络时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于TCN-TransformerLSTM双输入神经网络时间序列预测&#xff…

基于SpringBoot的校园自助洗衣服务管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的校园自助洗衣服务…

SAP Fiori-Vscode 环境搭建中npm报错

文章目录 前提: vscode 安装好了,node 配置完毕,npm环境搭建OK新建一个Fiori 初始化初始化性项目的报错&警告Q1: npm WARN config global --global, --local are deprecated. Use --locationglobal insteadQ2: npm打包出现警告&#xff0…

GPU池化赋能智能制造

2023年3月10日,“第六届智能工厂高峰论坛”在杭州隆重揭幕。本次会议由e-works数字化企业网、浙江制信科技有限公司主办,中国人工智能学会智能制造专业委员会、长三角新能源汽车产业链联盟、长三角(杭州)制造业数字化能力中心、浙江省智能工厂操作系统技…

基于微信小程序的宠物之家的设计与实现

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于微信小程序JavaSpringBootVueMySQL的宠物之家/宠物综合…

Redis复习笔记整理(2w+)

目录 1、Redis简介 1.1 补充数据类型Stream 1.2 Redis底层数据结构 1.3 Redis为什么快 1.4 持久化机制* 1.4.1 RDB持久化 bgsave执行流程 如何保证数据一致性 快照操作期间服务崩溃 RDB优缺点 1.4.2 AOF持久化 为什么采用写后日志 如何实现AOF 什么是AOF重写 AO…

vue项目中引入组件时出现的Module is not installed问题

在Vue项目中,如果遇到了如图“Module is not installed”这样的错误,通常这 个错误并不是直接由Vue或Vue CLI本身抛出的,而是可能因为几个不同的原因导致的。 这个错误可能是在你尝试引入一个模块或组件时,该模块或组件并没有被正…

java基础 | 动态代理

动态代理 简而言之就是:首先创建一套动态代理的规则,创建好自己的接口,和实现类,在调用时直接调用(缺少什么参数,补充哪个参数!) 实现步骤: 设计动态代理的规则&#x…

Windows系统下编译C++源码并调用

现在很多的C库都以源码的形式在github网站开源,如果要使用,可以直接下载到本地,添加到工程中调用。也可以将源码编译为动态或静态库文件,然后将库文件添加到工程中。 在这里我们将GoogleTest源码编译,然后加到工程中。…

OpenGL(三)着色器语言GLSL

着色器语言 在GPU上运行的图形渲染语言,类C风格。 类似于CUDA,但是又没有CUDA通用,又有点像Verilog这种硬件描述语言 GLSL是一种着色器语言,需要有对应的图形API环境配合,可以使用OpenGL,也可以使用OpenGL…

Proteus仿真综合实例(1)

分享一些基于Proteus的仿真实例,供大家学习参考。 1、51单片机230个Proteus仿真实例 包含基于51单片机的230个仿真实例,涉及定时器、中断、LCD显示、DS18B20温度测量、DS1621温度测量、PWM生成等充足电路模型案例。 2、51交通灯 模拟实现基于51单片机…

音视频入门基础:AAC专题(2)——使用FFmpeg命令生成AAC裸流文件

在文章《音视频入门基础:PCM专题(1)——使用FFmpeg命令生成PCM音频文件并播放》中讲述了生成PCM文件的方法。通过FFmpeg命令可以把该PCM文件转为AAC裸流文件: ./ffmpeg -f s16le -ar 44100 -ac 2 -i audio1.pcm audio1.aac 由于…

《论层次架构及其在软件系统中的应用》写作框架,软考高级系统架构设计师

论文真题 层次架构作为软件系统设计的一种基本模式,对于实现系统的模块化、可维护性和可扩展性具有至关重要的作用。在软件系统的构建过程中,采用层次架构不仅可以使系统结构更加清晰,还有助于提高开发效率和质量。因此,对层次架…

【笔记】2.2 黏土类原料

黏土类原料,用于制备陶瓷、耐火材料和水泥,为制品成型提供必须的可塑性,悬浮性。 2.2.1 黏土的成因和分类 黏土主要成分:含水硅铝酸盐 黏土形成:硅铝酸盐岩石经过长期地质时代的自然风化或热液蚀变作用而逐步形成。…

Elasticsearch-数据迁移elasticdump

一、环境信息 主机名 IPelasticsearch-master10.10.10.1elasticsearch-slave10.10.10.2 二、互联网部分 2.1、Nodejs下载安装(master节点) #官网:Download | Node.js #下载nodejs包 [rootelasticsearch-master home]# wget -c htt…