定时任务job (现成直接用)

1. 任务调度的2种方式

1. bean调用示例: 对应的类上加@Component或@Service注解, 类名.方法名(ryTask.ryNoParams) 类名首字母小写; 该类必须要在com.ruoyi 包下, 因为有校验
2. 权限类名调用示例: com.ruoyi.quartz.task.RyTask.ryNoParams

注意: class(类名)调用的时候, 只能调用com.ruoyi包中的类, 如果想要其它包也能调用, 则需修改配置
    /*** 定时任务白名单配置(仅允许访问的包名,如其他需要可以自行添加)*/public static final String[] JOB_WHITELIST_STR = { "com.ruoyi" };

2. 默认定时任务

 预留的三个定时任务

import org.springframework.stereotype.Component;
import com.ruoyi.common.utils.StringUtils;/*** 定时任务调度测试* * @author ruoyi*/
@Component("ryTask")
public class RyTask
{public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i){System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));}public void ryParams(String params){System.out.println("执行有参方法:" + params);}public void ryNoParams(){System.out.println("执行无参方法");}
}

开启ryNoParams()

执行效果:
执行无参方法
22:02:10.001 [quartzScheduler_Worker-7] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - ==>  Preparing: insert into sys_job_log( job_name, job_group, invoke_target, job_message, status, create_time )values( ?, ?, ?, ?, ?, sysdate() )
22:02:10.001 [quartzScheduler_Worker-7] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - ==> Parameters: 系统默认(无参)(String), DEFAULT(String), ryTask.ryNoParams(String), 系统默认(无参) 总共耗时:0毫秒(String), 0(String)
22:02:10.007 [quartzScheduler_Worker-7] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - <==    Updates: 1
执行无参方法
22:02:20.000 [quartzScheduler_Worker-8] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - ==>  Preparing: insert into sys_job_log( job_name, job_group, invoke_target, job_message, status, create_time )values( ?, ?, ?, ?, ?, sysdate() )
22:02:20.000 [quartzScheduler_Worker-8] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - ==> Parameters: 系统默认(无参)(String), DEFAULT(String), ryTask.ryNoParams(String), 系统默认(无参) 总共耗时:0毫秒(String), 0(String)
22:02:20.012 [quartzScheduler_Worker-8] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - <==    Updates: 1

开启 ryParams(String params)

执行效果: 
执行有参方法:ry
22:05:15.014 [quartzScheduler_Worker-10] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - ==>  Preparing: insert into sys_job_log( job_name, job_group, invoke_target, job_message, status, create_time )values( ?, ?, ?, ?, ?, sysdate() )
22:05:15.014 [quartzScheduler_Worker-10] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - ==> Parameters: 系统默认(有参)(String), DEFAULT(String), ryTask.ryParams('ry')(String), 系统默认(有参) 总共耗时:0毫秒(String), 0(String)
22:05:15.021 [quartzScheduler_Worker-10] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - <==    Updates: 1
执行有参方法:ry
22:05:30.008 [quartzScheduler_Worker-1] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - ==>  Preparing: insert into sys_job_log( job_name, job_group, invoke_target, job_message, status, create_time )values( ?, ?, ?, ?, ?, sysdate() )
22:05:30.008 [quartzScheduler_Worker-1] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - ==> Parameters: 系统默认(有参)(String), DEFAULT(String), ryTask.ryParams('ry')(String), 系统默认(有参) 总共耗时:0毫秒(String), 0(String)
22:05:30.021 [quartzScheduler_Worker-1] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - <==    Updates: 1

开启 ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)

执行效果: 
执行多参方法: 字符串类型ry,布尔类型true,长整型2000,浮点型316.5,整形100
22:08:00.001 [quartzScheduler_Worker-9] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - ==>  Preparing: insert into sys_job_log( job_name, job_group, invoke_target, job_message, status, create_time )values( ?, ?, ?, ?, ?, sysdate() )
22:08:00.001 [quartzScheduler_Worker-9] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - ==> Parameters: 系统默认(多参)(String), DEFAULT(String), ryTask.ryMultipleParams('ry', true, 2000L, 316.50D, 100)(String), 系统默认(多参) 总共耗时:0毫秒(String), 0(String)
22:08:00.001 [quartzScheduler_Worker-9] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - <==    Updates: 1
执行多参方法: 字符串类型ry,布尔类型true,长整型2000,浮点型316.5,整形100
22:08:20.014 [quartzScheduler_Worker-10] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - ==>  Preparing: insert into sys_job_log( job_name, job_group, invoke_target, job_message, status, create_time )values( ?, ?, ?, ?, ?, sysdate() )
22:08:20.014 [quartzScheduler_Worker-10] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - ==> Parameters: 系统默认(多参)(String), DEFAULT(String), ryTask.ryMultipleParams('ry', true, 2000L, 316.50D, 100)(String), 系统默认(多参) 总共耗时:0毫秒(String), 0(String)
22:08:20.018 [quartzScheduler_Worker-10] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - <==    Updates: 1

3. 新增定时任务

自定义类 MyTaskTest
package com.ruoyi.ruoyiwx.myTask;import org.springframework.stereotype.Component;/*** 注意: 该类需要在com.ruoyi 包下才会生效, 因为有校验*/
@Component
public class MyTaskTest {public void myTask(){System.out.println("执行无参方法: ---------------myTask");}
}

界面上新增定时任务

执行效果: 
执行无参方法: ---------------myTask
22:57:40.004 [quartzScheduler_Worker-6] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - ==>  Preparing: insert into sys_job_log( job_name, job_group, invoke_target, job_message, status, create_time )values( ?, ?, ?, ?, ?, sysdate() )
22:57:40.004 [quartzScheduler_Worker-6] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - ==> Parameters: 我的定时任务(String), DEFAULT(String), myTaskTest.myTask(String), 我的定时任务 总共耗时:0毫秒(String), 0(String)
22:57:40.019 [quartzScheduler_Worker-6] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - <==    Updates: 1
执行无参方法: ---------------myTask
22:57:50.003 [quartzScheduler_Worker-7] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - ==>  Preparing: insert into sys_job_log( job_name, job_group, invoke_target, job_message, status, create_time )values( ?, ?, ?, ?, ?, sysdate() )
22:57:50.003 [quartzScheduler_Worker-7] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - ==> Parameters: 我的定时任务(String), DEFAULT(String), myTaskTest.myTask(String), 我的定时任务 总共耗时:0毫秒(String), 0(String)
22:57:50.013 [quartzScheduler_Worker-7] DEBUG c.r.q.m.S.insertJobLog - [debug,137] - <==    Updates: 1

 
4. 定时任务的执行策略
1. 立即执行: 立即执行策略会立即执行所有misfire的任务。例如,如果9点的任务misfire了,在10点15分系统恢复之后,9点和10点的misfire任务会立即执行一次。
2. 执行一次: 执行一次策略会合并部分的misfire任务,并执行下一个周期的任务。举个例子,假设9点和10点的任务都misfire了,系统在10点15分起来,只会执行一次misfire任务,然后继续按照正常的执行周期继续执行。
3. 放弃执行: 放弃执行策略会忽略所有的misfire任务,直接执行下一个周期的任务。

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

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

相关文章

leetcode 35. 搜索插入位置

2023.9.4 本题较为简单&#xff0c;题目要求O(log n)的时间复杂度&#xff0c;就不能遍历查找了&#xff0c;得用二分查找。若成功查找到target值&#xff0c;则直接返回索引&#xff1b; 若直到结束都没查找到则返回left值。(纸上模拟下就懂了) 代码如下&#xff1a; class S…

一个通用的EXCEL生成下载方法

Excel是一个Java开发中必须会用到的东西&#xff0c;之前博主也发过一篇关于使用Excel的文章&#xff0c;但是最近工作中&#xff0c;发现了一个更好的使用方法&#xff0c;所以&#xff0c;就对之前的博客进行总结&#xff0c;然后就有了这篇新的&#xff0c;万能通用的方法说…

flink k8s sink到kafka报错 Failed to get metadata for topics

可能出现的3种报错 -- 报错1 Failed to get metadata for topics [...]. org.apache.kafka.common.errors.TimeoutException: Call-- 报错2 Caused by: org.apache.kafka.common.errors.TimeoutException: Timed out waiting to send the call. Call: fetchMetadata Heartbe…

Axure RP PC电商平台Web端交互原型模板

Axure RP PC电商平台Web端交互原型模板。原型图内容齐全&#xff0c;包含了用户中心、会员中心、优惠券、积分、互动社区、运营推广、内容推荐、商品展示、订单流程、订单管理、售后及服务等完整的电商体系功能架构和业务流程。 在设计尺寸方面&#xff0c;本套模板按照主流的…

logging.level的含义及设置 【java 日志 (logback、log4j)】

日志级别 trace<debug<info<warn<error<fatal 常用的有&#xff1a;debug&#xff0c;info&#xff0c;warn&#xff0c;error 通常我们想设置日志级别&#xff0c;会用到 logging.level.rootinfo logging.level设置日志级别&#xff0c;后面跟生效的区域。r…

酷派30/锋尚40/大观40S首发解锁BL+完美root权限+去除密码黑砖线刷修复

早前的中华酷联&#xff0c;随着时代的发展&#xff0c;酷派手机虽热发展的并没有其他手机那么快&#xff0c;但也 是坚强的活了下来。目前主打机型为Cool系列&#xff0c;最高为Cool30机型&#xff0c;并且发布酷派锋尚 40酷派大观40S&#xff0c;起头并进。该系列机型&#x…

Web前端开发概述

Web&#xff08;World Wide Web&#xff0c;全球广域网&#xff09;是指一种基于互联网的信息系统&#xff0c;通过超文本链接将全球各地的文档、图像、视频等资源相互关联起来&#xff0c;并通过Web浏览器进行交互浏览和访问。Web的发展使得人们可以方便地获取和共享各种类型的…

【Unity】预制体材质变(Clone)克隆体问题

1、排查代码是否存在直接修改预制体的材质为克隆体。 解决&#xff1a;删了这段代码。 2、双击Prefab文件进入预制体编辑模式时&#xff0c;会执行预制体身上的脚本方法Awake、Start等&#xff08;生命周期方法&#xff09;&#xff0c;所以要排查这些方法里是否有克隆…

支持向量机(二)

文章目录 前言具体内容 前言 总算要对稍微有点难度的地方动手了&#xff0c;前面介绍的线性可分或者线性不可分的情况&#xff0c;都是使用平面作为分割面的&#xff0c;现在我们采用另一种分割面的设计方法&#xff0c;也就是核方法。 核方法涉及的分割面不再是 w x b 0 wx…

【搭建私人图床】使用LightPicture开源搭建图片管理系统并远程访问

文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进&#xff0c;功能也越来越多&#xff0c;而手机…

BeautifulSoup模块基本使用方法(解析—提取数据)

一、了解BeautifulSoup 1、简介 一个灵活又方便的网页解析库&#xff0c;最主要的功能是从网页抓取数据&#xff0c;处理高效&#xff0c;支持多种解析器&#xff0c; 它通过转换器实现文档导航、查找、修改文档的方式。利用它可不用编写正则也能方便的实现网页信息的抓取&am…

【Node.js】Express-Generator:快速生成Express应用程序的利器

在Node.js世界中&#xff0c;Express是一个广泛使用的、强大的Web应用程序框架。它为开发者提供了一系列的工具和选项&#xff0c;使得创建高效且可扩展的Web应用程序变得轻而易举。然而&#xff0c;对于初学者来说&#xff0c;配置和初始化Express应用程序可能会有些困难。为了…

【汇编中的寄存器分类与不同寄存器的用途】

汇编中的寄存器分类与不同寄存器的用途 寄存器分类 在计算机体系结构中&#xff0c;8086CPU&#xff0c;寄存器可以分为以下几类&#xff1a; 1. 通用寄存器&#xff1a; 通用寄存器是用于存储数据和执行算术运算的寄存器。在 x86 架构中&#xff0c;这些通用寄存器通常包括…

Redis——数据结构介绍

Redis是一个key-value的数据库&#xff0c;key一般是String类型&#xff0c;不过value的类型是多样的&#xff1a; String&#xff1a;hello wordHash&#xff1a;{name:"Jack",age:21}List&#xff1a;[A -> B -> C -> D]Set&#xff1a;{A,B,C}SortedSet…

uni-app 之 图片

uni-app 之 图片 获取图片 v-bind 动态绑定 image.png <template><view><view>--- 获取图片1 ---<image src"../../static/img/tabbar_home1.png"></image></view><view>--- 获取图片2 v-bind 动态绑定---<image v-bi…

面试题查漏补缺 i++和 ++ i哪个效率更高

i 和 i 哪个效率更高&#xff1f; 在这里声明&#xff0c;简单地比较前缀自增运算符和后缀自增运算符的效率是片面的&#xff0c;因为存在很多因素影响这个问题的答案。首先考虑内建数据类型的情况:如果自增运算表达式的结果没有被使用&#xff0c;而是仅仅简单地用于增加一员…

从本地到Gitee:一步步学习文件上传及解决常见报错问题

&#x1f642;博主&#xff1a;小猫娃来啦 &#x1f642;文章核心&#xff1a;一步步学习文件上传及解决常见报错问题 文章目录 安装git进入gitee官网&#xff0c;登录账号新建仓库先打开git命令行上传本地资源到仓库第一步&#xff1a;git init第二步&#xff1a;git add .第三…

大数据错误

question1 : Could not locate Hadoop executable: D:\hadoop-3.3.1\bin\winutils.exe - 【已解决】Could not locate executable E:\Hadoop\bin\winutils.exe in the Hadoop binaries._could not locate executable e:\hadoop-3.3.1\bin\wi_君问归期魏有期的博客-CSDN博客 q…

Revit SDK 介绍:CreateAirHandler 创建户式风管机

前言 这个例子介绍如何通过 API 创建一个户式风管机族的内容&#xff0c;包含几何和接头。 内容 效果 核心逻辑 必须打开机械设备的族模板创建几何实体来表示风管机创建风机的接头 创建几何实体来表示风管机 例子中创建了多个拉伸&#xff0c;下面仅截取一段代码&#xff…

开发指导—利用 CSS 动画实现 HarmonyOS 动效(二)

注&#xff1a;本文内容分享转载自 HarmonyOS Developer 官网文档 点击查看《开发指导—利用CSS动画实现HarmonyOS动效&#xff08;一&#xff09;》 3. background-position 样式动画 通过改变 background-position 属性&#xff08;第一个值为 X 轴的位置&#xff0c;第二个…