Spring实现定时启动任务

[Python] 为什么你的脚本明明没报错,却什么也没发生? Python脚本运行后没报错却没结果?这是许多开发者遇到的棘手问题。文章分析了六种常见原因:代码未进入目标逻辑分支、输出路径错误、中间数据为空、异常被吞掉、异步操作未完成、运行了错误脚本版本。建议通过"过程可视化"排查,如打印关键变量、检查工作目录、验证数据状态等。职场中更应关注结果验证而非单纯代码执行,确保脚本真正解决问题。建立结果验证意识是从"会写代码"到"稳定交付"的关键转变。 阅读详情

Spring实现定时启动任务

 

1、  Spring的定时启动任务的流程

 

 

<1>、在配置信息中SchedulerFactoryBean定义了多个触发器,在启动Spring后,就是从这个配置获取到触发器。

 

<2>、触发器是通过CronTriggerBean来配置,它设置了任务类和任务启动的时间

 

<3>、MethodInvokingJobDetailFactoryBean是任务类的配置,设置了执行任务的对象是那个Bean和需要执行这个Bean大那个方法。

 

 

2、  具体实现的例子

     

<1>、创建一个类HelloWord.java和它的方法sayHello().

 

 package com.test;

public class HelloWorld {

	public void sayHello() {

		System.out.println("Hello world!");
	}
} 


 

<2>、在Spring的配置文件中添加HelloWord.java的配置

<bean name="hello" class="com.test.HelloWorld"></bean>


 

<3>、在Spring的配置文件中使用MethodInvokingJobDetailFactoryBean添加任务类的配置,在这个配置中设置了targetObject和targetMethod两个属性,即要执行的任务对象和任务方法。

 

<bean id="helloJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject">
			<ref bean="taskJob" />
		</property>
		<property name="targetMethod">
			<value>SayHello</value>
		</property>
	</bean>


 

<4>、使用org.springframework.scheduling.quartz.CronTriggerBean在Spring的配置文件添加触发器的配置,设置的jobDetail和cronExpression分别对应任务类和启动时间.

 

<!-- 配置触发器 -->
	<bean id="helloTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<!-- 这里不可以直接在属性jobDetail中引用taskJob,因为他要求的是一个jobDetail类型的对象,所以我们得通过MethodInvokingJobDetailFactoryBean来转一下 -->
		<property name="jobDetail">
			<ref bean="helloJobDetail" />
		</property>
		<!-- 每天的8点到21点每隔1分钟触发-->
		<property name="cronExpression">
			<value>0 * 08-21 * * ?</value>
		</property>
	</bean>


 

<5>、使用org.springframework.scheduling.quartz.SchedulerFactoryBean把触发器放在一个集合中。

 

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<!-- 添加触发器 -->
		<property name="triggers">
			<list>
				<ref local="helloTrigger" />
			</list>
		</property>
	</bean>


 

<6>、创建测试类

package com.test;

 

import org.springframework.context.support.ClassPathXmlApplicationContext;

 

public class TestSpring {

 

         public static void main(String[] args) {

                   new ClassPathXmlApplicationContext("spring.xml");

         }

}


 

 

 

 

 

3、  在配置触发器是使用cronExpression的属性来配置启动时间

如:

 <!-- 每天的8点到21点每隔1分钟触发-->

           <property name="cronExpression">

                    <value>0 * 08-21 * * ?</value>

           </property>

Valu的值是使用空格分开的,分别是:

 秒  分钟  小时日期   月份  星期  年(可选)

 

字段

允许值

允许的特殊字符

秒

0-59

, - * /

分

0-59

, - * /

小时

0-23

, - * /

日期

1-31

, - * ? / L W C

月份

1-12 或者 JAN-DEC

, - * /

星期

1-7 或者 SUN-SAT

, - * ? / L C #

年(可选)

留空, 1970-2099

, - * /

 

 

表达式

意义

"0 0 12 * * ?"

每天中午12点触发

"0 15 10 ? * *"

每天上午10:15触发

"0 15 10 * * ?"

每天上午10:15触发

"0 15 10 * * ? *"

每天上午10:15触发

"0 15 10 * * ? 2005"

2005年的每天上午10:15触发

"0 * 14 * * ?"

在每天下午2点到下午2:59期间的每1分钟触发

"0 0/5 14 * * ?"

在每天下午2点到下午2:55期间的每5分钟触发

"0 0/5 14,18 * * ?"

在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

"0 0-5 14 * * ?"

在每天下午2点到下午2:05期间的每1分钟触发

"0 10,44 14 ? 3 WED"

每年三月的星期三的下午2:10和2:44触发

"0 15 10 ? * MON-FRI"

周一至周五的上午10:15触发

"0 15 10 15 * ?"

每月15日上午10:15触发

"0 15 10 L * ?"

每月最后一日的上午10:15触发

"0 15 10 ? * 6L"

每月的最后一个星期五上午10:15触发 

"0 15 10 ? * 6L 2002-2005"

2002年至2005年的每月的最后一个星期五上午10:15触发

"0 15 10 ? * 6#3"

每月的第三个星期五上午10:15触发

每天早上6点

0 6 * * * 

每两个小时

0 */2 * * *
晚上11点到早上8点之间每两个小时,早上八点

0 23-7/2,8 * * *

每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

0 11 4 * 1-3
1月1日早上4点

0 4 1 1 *

 

 

 

特殊字符

 

意义

*

  

表示所有值;

?

  

表示未说明的值,即不关心它为何值;

-

  

表示一个指定的范围;

,

  

表示附加一个可能值;

/

  

符号前表示开始时间,符号后表示每次递增的值;

L("last")

  

("last") "L" 用在day-of-month字段意思是 "这个月最后一天";用在 day-of-week字段, 它简单意思是 "7" or "SAT"。如果在day-of-week字段里和数字联合使用,它的意思就是 "这个月的最后一个星期几" – 例如: "6L" means "这个月的最后一个星期五". 当我们用“L”时,不指明一个列表值或者范围是很重要的,不然的话,我们会得到一些意想不到的结果。

W("weekday")

  

只能用在day-of-month字段。用来描叙最接近指定天的工作日(周一到周五)。例如:在day-of-month字段用“15W”指“最接近这个月第15天的工作日”,即如果这个月第15天是周六,那么触发器将会在这个月第14天即周五触发;如果这个月第15天是周日,那么触发器将会在这个月第16 天即周一触发;如果这个月第15天是周二,那么就在触发器这天触发。注意一点:这个用法只会在当前月计算值,不会越过当前月。“W”字符仅能在day- of-month指明一天,不能是一个范围或列表。也可以用“LW”来指定这个月的最后一个工作日。

#

  

只能用在day-of-week字段。用来指定这个月的第几个周几。例:在day-of-week字段用"6#3"指这个月第3个周五(6指周五,3指第3个)。如果指定的日期不存在,触发器就不会触发。

C

  

指和calendar联系后计算过的值。例:在day-of-month 字段用“5C”指在这个月第5天或之后包括calendar的第一天;在day-of-week字段用“1C”指在这周日或之后包括calendar的第一天。

(8-5)图像特征提取:基于LoG、DoG 和DoH 的斑点检测器 然后,根据给定的参数(标准差、尺度因子),通过调用cv2.GaussianBlur函数创建了两个不同尺度的高斯滤波器,并对图像进行滤波操作。然后,通过遍历DoG滤波器的每个像素,检测局部极值点,并将其添加到关键点列表中。然后,通过遍历DoH滤波器的每个像素,检测局部极值点,并将其添加到关键点列表中。接下来,通过遍历滤波器的每个像素,检测局部极值点,并将其添加到关键点列表中。DoH是一种基于Hessian矩阵的特征检测方法,通过计算Hessian矩阵的行列式来检测图像中的斑点。:实现DoH斑点检测器。 阅读详情

相关推荐

单细胞分析实战:当Seurat的SCTransform遇上Harmony,我的整合流程优化笔记

本文详细介绍了单细胞转录组数据分析中SCTransform与Harmony整合流程的优化策略。通过实战案例展示如何调整SCTransform参数、优化Harmony整合效果,并解决常见问题,帮助研究者获得更可靠的生物学发现。特别适合需要处理批次效应的单细胞数据分析人员。

weixin_42552716的博客 356

Springboot整合Quartz定时任务框架(Spring解决方案)

spring提供的quartz解决发难

Ricardo.M.Yu的博客 4837

UE5实战:用Cesium插件打造逼真湖泊效果(附波纹参数调优技巧)

本文详细介绍了在Unreal Engine 5中利用Cesium插件创建逼真区域水效果(如湖泊)的实战流程。重点解析了通过材质层混合机制,精细调整波纹参数(如DistanceScale、NearScale)来模拟不同水体状态,并提供了从资产创建、地形配置到视觉调优的一站式解决方案,帮助开发者高效实现非海洋水域的动态视觉效果。

weixin_29209805的博客 160

spring任务调度SchedulerFactoryBean、CronTriggerFactoryBean(简单,明了)

http://img.blog.youkuaiyun.com/20160530121730543?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Centerok,在控制台打印一句话,每隔一秒打印一次:   两步得到上述效果: ...

谢彬の优快云专栏 4万+

抖音直播“卡黑屏”技术解析:从实现原理到平台风控与合规运营

在直播技术领域,视频流推送与实时互动是核心基础。其原理在于通过编码软件(如OBS)将音视频数据封装后,经由网络协议推送到服务器,再分发给观众。这项技术的价值在于支撑了实时、高并发的在线互动场景,是直播、在线会议等应用的基石。然而,在追求流量和互动的实践中,衍生出一些非常规操作,例如通过技术手段中断或控制视频流推送,仅保留音频和互动功能,以达到特定运营目的。这便涉及到了**卡黑屏**这一具体现象。它本质上是对直播流的人为干预,常与**流量博弈**和**风险规避**等动机相关联。从工程实践角度看,实现方式多样,

weixin_29895109的博客 1283

AI 模型训练核心方法论:零基础也能落地的 8 个关键阶段

本文是为 AI 零基础学习者打造的模型训练入门指南,以生活化语言拆解核心概念,规避专业术语壁垒。内容先通俗阐释模型训练、监督学习、数据集划分等基础概念,再按问题定义、数据准备、模型选择、环境搭建、训练、评估、调参、部署 8 个阶段,拆解完整训练流程,搭配 PyTorch 代码示例与实战案例,同时提供资源预算、常见问题解决方案及学习路径。指南强调数据的核心重要性,推荐新手优先使用迁移学习和免费 GPU 资源,兼顾理论与实操,帮助学习者快速上手,避开训练误区,独立完成从模型搭建到部署的全流程。

weixin_52741870的博客 468

Spring Task 定时任务、使用 XML 配置实现定时任务、使用注解配置实现定时任务

Spring Task 定时任务一、使⽤ XML 配置实现定时任务1.1 定义定时任务方法1.2 添加配置⽂件 spring.xml1.3 测试定时任务二、使用注解配置实现定时任务2.1 定义定时任务方法2.2 添加配置⽂件 spring.xml2.3 测试定时任务三、Cron 表达式简介 一、使⽤ XML 配置实现定时任务 添加spring坐标依赖。 1.1 定义定时任务方法 新建类,添加⾃动注⼊的注解,定义定义任务的⽅法 /** * 任意类@Component */ @Component pub

qq_43647383的博客 2209

离线安装 nvidia-docker2(nvidia-container-toolkit)

很多时候大家都有用docker使用gpu的需求,但是因为网络等原因不是那么好用,这里留了一个给ubuntu的安装包,网络好的话也提供了在线安装方式。

father_yingying的博客 1181

Spring Task定时任务的配置和使用详解

参考地址:http://www.cnblogs.com/chen-lhx/p/5581129.htmlspring中使用定时任务基于xml配置文件使用定时任务首先配置spring开启定时任务12345678910111213141516171819202122232425262728&lt;beans xmlns="http://www.springframework.org/schema/bea...

javaMan的博客 2891

从零开始:使用PacBio HiFi和ONT超长读取组装基因组(保姆级教程)

本文提供了一份从零开始的基因组组装保姆级教程,详细讲解了如何融合PacBio HiFi高精度读长与ONT超长读长数据。内容涵盖数据质控、预处理、混合组装策略选择、结果评估及Hi-C支架构建等关键步骤,旨在帮助研究人员获得高质量的完整基因组。

weixin_29266647的博客 202

Multisim实战:从零搭建体温检测报警电路(附完整仿真文件+调试技巧)

本文详细介绍了如何使用Multisim从零搭建体温检测报警电路,涵盖LM35温度传感器、LM358运算放大器等核心器件的选型与连接,以及信号调理、阈值比较和数码管显示等关键电路设计。附赠完整仿真文件和实用调试技巧,帮助电子工程初学者快速掌握体温温度检测系统的设计与实现。

weixin_28285943的博客 291

Quartz与Spring集成—— SchedulerFactoryBean的初始化分析

Quartz是一个开源的定时调度框架,支持集群部署。我们可以通过其Java API来使用它,或者通过Spring来配置与管理,也可以结合使用两种方式。本文重点分析Quartz与Spring集成时的初始化过程。

beliefer的博客 7万+

SAP SLT 在 carve-out 场景中的关键作用:从理论到实操全景展现

深入剖析 SAP Landscape Transformation(SLT Replication Server)在 carve‑out 场景中的价值,需要从 carve‑out 本身的背景逻辑说起。carve‑out 指的是企业因并购、拆分、剥离商业单元等因素,而将 SAP 系统中某部分业务(例如组织单元、公司代码、模块数据等) separated 出来,导入到独立的系统中。这一过程极具挑战性,既要确保业务连续性,又要实现数据精准迁移和系统隔离 (

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 7550

boot定时任务开启和关闭 spring_SpringBoot实现定时任务的动态创建、启动、暂停、恢复、删除。...

在spring boot项目中,可以通过@EnableScheduling注解和@Scheduled注解实现定时任务,也可以通过SchedulingConfigurer接口来实现定时任务。但是这两种方式不能动态添加、删除、启动、停止任务。要实现动态增删启停定时任务功能,比较广泛的做法是集成Quartz框架。但是本人的开发原则是:在满足项目需求的情况下,尽量少的依赖其它框架,避免项目过于臃肿和复杂。...

weixin_35027153的博客 2418

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Tomcat启动Spring项目如何实现注解方式配置定时任务

Spring项目非Spring Boot项目借助Tomcat启动war包来启动项目,通过注解的方式配置定时任务。

m0_53434091的博客 581

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Spring定时任务的实现方式(程序启动后运行)--ScheduledExecutorService

本方式会在程序启动后单独开启一个线程去执行,慎用 建立一个Java类,并实现Runnable接口 import java.util.Date; public class StartupTask implements Runnable{ @Override public void run() { System.out.println(new Date()+" ScheduledExecutorTask..."); } } Spring配置 <!

休对故人思故国,且将新火试新茶。诗酒趁年华 941

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

quartz 启动后执行一次_Spring Boot 集成 Quartz 实现定时任务的动态创建、启动、暂停、恢复、删除等操作...

看了好多文章,都只讲了基础的demo用法,也就是简单的创建运行定时任务,对定时任务的管理却很少。我这里从0开始搭建一个简单的demo,包括定时任务的各种操作,以及API的一些用法,可以实现大多场景的需求。如:普通定时任务的创建、启动、停止。动态创建定时任务,如创建一个订单,5分钟后执行某某操作。一、整个 Quartz 的代码流程基本基本如下:首先需要创建我们的任务(Job),比如取消订单...

weixin_39866646的博客 724

Spring Boot集成Quartz实现定时任务的动态创建、启动、暂停、恢复、删除。

看了好多文章,都只讲了基础的demo用法,也就是简单的创建运行定时任务,对定时任务的管理却很少。我这里从0开始搭建一个简单的demo,包括定时任务的各种操作,以及API的一些用法,可以实现大多场景的需求。如: 普通定时任务的创建、启动、停止。 动态创建定时任务,如创建一个订单,5分钟后执行某某操作。 一、整个Quartz 的代码流程基本基本如下: 首先需要创建我们的任务(Job),比如取消订单、定时发送短信邮件之类的,这是我们的任务主体,也是写业务逻辑的地方。 创建任务调度器(Schedul..

毅呀毅呀哟 1万+

时光机启动:Spring中如何巧妙实现定时任务?

嗨,小伙伴们!在这篇文章中,小米将为大家解密Spring框架中如何实现定时任务。通过@Scheduled注解和TaskScheduler接口,让你轻松掌握定时任务的魅力。不容错过的技术干货,一起来看看吧!

孤芳不自赏 421

springboot quartz没有启动_Spring Boot 集成 Quartz 实现定时任务的动态创建、启动、暂停、恢复、删除等操作...

看了好多文章,都只讲了基础的demo用法,也就是简单的创建运行定时任务,对定时任务的管理却很少。我这里从0开始搭建一个简单的demo,包括定时任务的各种操作,以及API的一些用法,可以实现大多场景的需求。如:普通定时任务的创建、启动、停止。动态创建定时任务,如创建一个订单,5分钟后执行某某操作。一、整个 Quartz 的代码流程基本基本如下:首先需要创建我们的任务(Job),比如取消订单...

weixin_39637919的博客 802

Spring Boot 集成 Quartz 实现定时任务的动态创建、启动、暂停、恢复、删除等操作...

看了好多文章,都只讲了基础的demo用法,也就是简单的创建运行定时任务,对定时任务的管理却很少。我这里从0开始搭建一个简单的demo,包括定时任务的各种操作,以及API的一些用法,可以实...

Java精选 2233

java定时任务

定时任务 /** *定时任务要执行的东西 */ package cn.wwkj.timeworker; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.stereotype.Compone...

liguoxiangzhizui的博客 134

spring定时任务中使用servletContext

关于spring的定时任务的相关配置不做相关的说明了,官方文档写的很清楚,网上也有很多很多人的配置详解。但我觉得你下的哪个版本的spring就按照那个相关的文档去配置比较好一点。 其实纠结的不是spring定时任务,而是定时任务中要用到servletContext对...

chongzhang2804的博客 270

spring中配置定时任务

原文链接:http://blog.youkuaiyun.com/lixuegen/article/details/51755097 spring的定时任务配置分为三个步骤:  1、定义任务  2、任务执行策略配置  3、启动任务 (程序中一般我们都是到过写的,直观些)   1、定义任务    class="org.springframework.scheduling.qu

溜溜溜的pipi 506

springboot整合定时任务

springboot整合定时任务 参考网址: http://www.ityouknow.com/springboot/2016/12/02/spring-boot-scheduler.html 1.pom配置 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifa

java技术博客 147

java 定时 spring_Spring定时任务实现与配置(一)

朋友的项目中有点问题。他那边是Spring架构的,有一个比较简单的需要定时的任务执行。在了解了他的需求之后,于是提出了比较简单的Spring+quartz的实现方式。注意本文只是讨论,在已搭建完毕的Spring工程下,完成最简单的定时任务。第一步,要知道Spring这个架构,很有趣很有意思。可以做到自由插拔功能模块的效果。工程项目是基于MAVEN包依赖管理的,所以把这次需要的依赖包引用列出来:or...

weixin_34966468的博客 1154
上一篇: Spring配置文件中使用PropertyPlaceholderConfigurer配置获取jdbc的配置信息
下一篇: anroid的组件EditText——属性小结
longyi_java
博客等级 码龄20年 24粉丝 127原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值