使用quartz实现定时器功能

首先导入两个包

 1     <dependency>
 2         <groupId>org.quartz-scheduler</groupId>
 3         <artifactId>quartz</artifactId>
 4         <version>2.2.2</version>
 5     </dependency>
 6     <dependency>
 7         <groupId>org.quartz-scheduler</groupId>
 8         <artifactId>quartz-jobs</artifactId>
 9         <version>2.2.2</version>
10     </dependency>

然后写一个类用来当作定时器类,同时写一个方法为定时器执行的方法:

 1 package com.practice.prac.service.Impl;
 2
 3 import org.springframework.stereotype.Component;
 4
 5 @Component
 6 public class TestTime {
 7
 8     public void print(){
 9         System.out.println("----------");
10     }
11 }

这里是TestTime类和print方法

在xml文件中定义以下bean:

 1 <!-- 以下为quartz实现定时器 -->
 2
 3     <!-- 指明作为定时器的类 -->
 4     <bean id="TestTime" class="com.practice.prac.service.Impl.TestTime"></bean>
 5     <!-- 配置对应的信息 -->
 6     <bean id="TestTimeDetail"
 7         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
 8         <!-- 指定任务类 -->
 9         <property name="targetObject" ref="TestTime" />
10         <!-- 指定任务执行的方法 -->
11         <property name="targetMethod" value="print" />
12     </bean>
13     <!-- 配置触发器 -->
14     <bean id="TestTimeTrigger"
15         class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
16         <property name="jobDetail" ref="TestTimeDetail" />
17         <!-- 每5秒运行一次 -->
18         <property name="cronExpression" value="0/5 * * * * ?" />
19     </bean>
20
21     <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
22         <property name="triggers">
23             <list>
24                 <!-- <ref bean="exampleJobTrigger" /> -->
25                 <ref bean="TestTimeTrigger" />
26             </list>
27         </property>
28     </bean>

其中名字跟ref对应,指定任务类和指定任务执行的方法对应上就可以了。

定时触发在触发器的cronExpression处定义,具体表达式含义在另一篇文章中。

时间: 2024-10-15 05:35:19

使用quartz实现定时器功能的相关文章

不用写Windows服务实现定时器功能(FluentScheduler )

链接:http://www.cnblogs.com/mafly/p/FluentScheduler.html MacBook Pro 只有四个 USB Type-C 接口是否错了? 一项新技术的诞生总会对已存在的事物造成冲击或影响,如果大家都害怕冲击与影响,那这个世界永远像现在不变就行了,大家都好好的,待在自己的舒适区,社会丝毫没有创新与进步而言. 其实, USB Type-C 接口协议在三年前几个科技巨头公司就参与制定了协议,并答应要在自家的产品上推广它,但谁都怕一下子在自家产品上升级 USB

Boost.deadline_timer实现定时器功能时需注意的时区问题

利用boost.deadline_timer() 可以很方便的实现定时器功能,详情参考:http://www.boost.org/doc/libs/1_57_0/doc/html/boost_asio/reference/deadline_timer.html 比如等待指定的时间数: boost::asio::io_service ioservice; boost::asio::deadline_timer tm(ioservice, boost::posix_time::seconds(5))

微信小程序学习Course 7 定时器功能

微信小程序学习Course 7 定时器功能 微信小程序中有一个定时器API函数,其提供了四个API接口 7.1.number setTimeout(function callback, number delay, any rest) 设定一个定时器,在定时到期以后执行注册的回调函数,值得注意的是本函数只执行一次!!!! setTimeout(this.DaoJiShi, 1000);//时间到达一秒执行一次DaoJiShi函数 如果我们想实现一个不停调用的函数,怎末实现呢?以下函数利用递归实现了

定时器_在.net core3.0 webapi中添加自定义定时器功能

原文:定时器_在.net core3.0 webapi中添加自定义定时器功能 前言:想在.net framework环境使用自定义定时器的话,参考我的另一篇文章:https://www.cnblogs.com/lxhbky/p/10242839.html 想在.net core中使用定时器功能,需要借助一个服务接口:IHostedService,   继承并实现对应方法,最后再setup.cs类中添加注册服务:services.AddHostedService<实现服务类>();   既然要写

SSM的quartz动态定时器

Controller层: package com.smartteam.controller; import com.smartteam.controller.BaseController; import com.smartteam.service.SampleTryEntryService; /** * <p> * 前端控制器 * </p> * * @author XiaoDeng * @since 2019-08-06 */ @Api(tags = "动态定时器&quo

spring 框架自带的定时器功能

1...pom.xml 文件配置 1 <dependencies> 2 <dependency> 3 <groupId>junit</groupId> 4 <artifactId>junit</artifactId> 5 <version>4.11</version> 6 <scope>test</scope> 7 </dependency> 8 <dependency

arduino的定时器功能

一直很好奇arduino的定时器是怎么工作的,最近查了一下Atmega328P的芯片资料,现已Atmega328P的Timer1定时器作为说明,控制输出匹配引脚D9口的输出电平. Arduino定时器有普通模式.CTC模式.快速PWM模式.相位可调PWM模式.本文采用CTC模式,即当寄存器TCNT1与OCR1A/OCR1B相等时(即匹配),OC1A/OC1B按照COM1x[1:0]的值相应的改变(置位,清零或取反).同时TCNT1清零,TCNT1从0x00重新开始计数,当计数结果和下一个OCR1

MFC的DLL中实现定时器功能

方法一:创建一个线程, 反复读系统时间不就可以了? 如果定时要求不严,用Sleep就可以了.DWORD WINAPI TimerThread(LPVOID pamaram) { UINT oldTickCount, newTickCount; oldTickCount = GetTickCount(); //获取的是毫秒数 while(TRUE) { while(TRUE) { newTickCount = GetTickCount(); // 获取的是毫秒数 if(newTickCount -

Delphi的DLL里如何实现定时器功能?

一,首先引入“mmsystem”单元. 二,启动定时器: var MMTimerID: Integer; // 定时器ID MMTimerID := timeSetEvent(1000, 0, @TimerProc, 0, TIME_PERIODIC); 三,定时器过程代码: procedure TimerProc(uTimerID, uMessage: UINT; dwUser, dw1, dw2: DWORD); stdcall;begin  // 业务代码end; 四,结束定时器: tim