在java2中完成定时调度是基于Timer(启动定时器)和TimerTask(定义执行任务)来完成的。
但是功能比较局限。spring支持Quartz。
首先看一下非spring情况下使用Quartz的实例
首先定义一个实现StatefulJob接口的类,该类表示定时器的执行的任务。
public class WeatherCaptureJob implements StatefulJob {
public void execute(JobExecutionContext context)
throws JobExecutionException {
//xxx调度逻辑代码
}
}
然后实现一个JobDetail用于装作jobClass(即上面的类).
JobDetail jobDetail = new JobDetail("WeatherCaptureJob",
"WeatherCaptureJobGroup", WeatherCaptureJob.class);
然后定义一个表达式语言的类
CronExpression cexp = new CronExpression(expressValue);//expressValue为表达式语言字符串
再定义一个CronTrigger类,该类用于装作表达式语言,即设定了定时器的执行时机。
CronTrigger cronTrigger = new CronTrigger( "WeatherCaptureCronTrigger", "WeatherCaptureJobGroup");
cronTrigger.setCronExpression(cexp);
最后定义一个调度类,该类用于让任务类在设定的时间执行
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
scheduler.scheduleJob(jobDetail, cronTrigger);
scheduler.start();
然后再看看spring下对Quartz的支持
首先定义一个继承QuartzJobBean类的实现类,该实现类是定时任务类
public class MyTimeTask extends QuartzJobBean {
public void executeInternal(JobExecutionContext arg0)
throws JobExecutionException {
//定时逻辑代码
}
}
在spring配置文件中定义jobdetail类,该类是装载定时任务类的
<bean id="mySchdulTask"
class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass">
<value>
MyTimeTask
</value>
</property>
</bean>
接着定义一个Triger类,该类和上面有一点区别之处就是不但定义了时间表达式,而且还定义装作了jobdetail类
<bean id="myTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="mySchdulTask" />
</property>
<property name="cronExpression">
<value>0 0/10 * * * ?</value>
</property>
</bean>
最后定义一个调度类,用于执行triger
<bean
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="myTrigger" />
</list>
</property>
</bean>
分享到:
相关推荐
Spring定时调度简单实现源码.rar
Spring中集成的一个定时任务调度器,以备以后使用
spring动态调度任务,根据用户选择时间进行定时执行任务相关文档配置
这是现在最流行的定时调度选择方案,我已经总结好了,大家可以当作手册来用
Spring Quartz 定时调度任务,带中文注解与jar文件,导入项目即可直接运行。
用spring配置实现后台隔段时间执行一次自己想要执行的代码、高级货
Spring 定时器 任务调度 怎么在项目中写定时任务 怎么配置一些环境
Spring+Quartz定时调度jar包和文档
spring整合quartz定时任务调度..........
NULL 博文链接:https://taoistwar.iteye.com/blog/401165
NULL 博文链接:https://zheng12tian.iteye.com/blog/762585
spring boot+vue+quartz2.2.3整合定时调度系统持久化道mysql,sql脚本在项目里面。sql文件spring boot+vue+quartz2.2.3整合定时调度系统持久化道mysql
spring3.2.4+quartz2.2.0 定时调度例子,能正常运行的程序
技术:spring 功能:在java后台每隔一段时间执行一次自己想要的代码,定时器会随web启动而启动. 这是一个web工程、把工程解压后放到eclipse或myeclipse里运行就可以了、在控制台会每隔5秒输出一句话、时间是可以设置...
5、C#定时调度任务服务(Quartz.net做为任务调度核心,利用Log4Net做为日志输出,C#完成WINDOWS服务在后台定时执行任务) 6、android 后台定时执行任务 示例源码 7、C# Quatrz定时任务job实现 8、Quartz.NET定时任务...
Spring3.0作业调度Spring3.0内置的定时调度的功能可以通过注解及XML配置来实现。Sping3Demo项目的com.chinadim.demo.spring.schedule包路径下的两个示例程序尽可能简洁地演示了怎样使用这两种方式。 接下来,我们来...
用到了spring的任务调度 ,动手写了个demo
java 定时调度 驱动包 与spring配合使用更方便
spring的三种任务调度实现方式lib
Spring Quartz定时作业,包含了任务,触发器,调度的配置文件,启动tomcat就可以运行,你懂得