3、spring集成quartz
来源:互联网 发布:php html页面生成图片 编辑:程序博客网 时间:2024/05/16 15:50
spring集成quartz有两种方式:
1. JobDetailBean.
2. MethodInvokeJobDetailFactoryBean.
注意:spring集成quartz,除了基本的jar包之外,还需要引入spring-support架包
<!-- spring-support.jar 这个jar 文件包含支持UI模版(Velocity,FreeMarker,JasperReports),邮件服务,脚本服务(JRuby), 缓存Cache(EHCache),任务计划Scheduling(uartz)方面的类。 外部依赖spring-context, (spring-jdbc, Velocity, FreeMarker, JasperReports, BSH, Groovy, JRuby, Quartz, EHCache) --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.2.6.RELEASE</version> </dependency>
1、JobDetailBean
1.创建一个Job方法,此方法必须继承QuartzJobBean或者实现Job方法。
public class TestJob extends QuartzJobBean { @Override protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException { System.out.println(TimeUtils.getCurrentTime()); }}2.配置xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"> <property name="jobClass" value="com.mc.bsframe.job.TestJob"></property> <property name="durability" value="true"></property> </bean> <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"> <property name="jobDetail" ref="jobDetail" /> <property name="startDelay" value="3000" /> <property name="repeatInterval" value="2000" /> </bean> <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 --> <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <!-- 管理trigger --> <property name="triggers"> <list> <ref bean="simpleTrigger" /> </list> </property> </bean></beans>
2、MethodInvokeJobDetailFactoryBean
1.创建一个Job类,此类不需要继承任何类或者实现任何接口
package com.mc.bsframe.job;import org.quartz.Scheduler;import org.quartz.SchedulerException;import org.quartz.TriggerKey;import org.quartz.impl.triggers.SimpleTriggerImpl;import org.springframework.beans.factory.annotation.Autowired;import com.mc.bsframe.service.TestService;import com.mc.bsframe.util.TimeUtils;public class TestJob2 { public void doSomething() { System.err.println("****:" + TimeUtils.getCurrentTime()); }}
2.配置XML
采用SimpleTrigger
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 要执行任务的任务类。 --> <bean id="testQuartz" class="com.mc.bsframe.job.TestJob2"> </bean> <!-- 将需要执行的定时任务注入JOB中。 --> <bean id="testJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="testQuartz"></property> <!-- 任务类中需要执行的方法 --> <property name="targetMethod" value="doSomething"></property> <!-- 上一次未执行完成的,要等待有再执行。 --> <property name="concurrent" value="false"></property> </bean> <!-- 基本的定时器,会绑定具体的任务。 --> <bean id="testTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"> <property name="jobDetail" ref="testJob"></property> <property name="startDelay" value="3000"></property> <property name="repeatInterval" value="2000"></property> </bean> <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="testTrigger"></ref> </list> </property> </bean></beans>采用CronTrigger
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 要执行任务的任务类。 --> <bean id="testQuartz" class="com.mc.bsframe.job.TestJob2"> </bean> <!-- 将需要执行的定时任务注入JOB中。 --> <bean id="testJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="testQuartz"></property> <!-- 任务类中需要执行的方法 --> <property name="targetMethod" value="doSomething"></property> <!-- 上一次未执行完成的,要等待有再执行。 --> <property name="concurrent" value="false"></property> </bean> <!-- 基本的定时器,会绑定具体的任务。 --> <bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"><property name="jobDetail"><ref bean="testJob"/></property> <!-- cron表达式 --> <property name="cronExpression"> <value>10,15,20,25,30,35,40,45,50,55 * * * * ?</value> </property> </bean> <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="testTrigger"></ref> </list> </property> </bean></beans>
使用QuartzJobBean,需要继承。
使用MethodInvokeJobDetailFactoryBean,则需要指定targetObject(任务实例)和targetMethod(实例中要执行的方法)
阅读全文
0 0
- Spring 3 - Quartz - 集成
- 3、spring集成quartz
- Spring集成Quartz
- spring 3.0集成 quartz
- spring集成quartz
- Spring集成Quartz
- 集成spring和quartz
- Spring集成Quartz实战
- spring集成quartz
- spring集成 quartz
- Spring集成quartz
- Quartz集成Spring框架
- spring内集成quartz
- spring-boot集成Quartz
- Quartz+Spring集成配置
- spring集成quartz
- Spring中集成quartz
- Quartz的spring集成
- OpenCV学习之图像域的填充
- win7 64位旗舰版系统运行regsvr32.exe提示版本不兼容
- 【LeetCode】002. Add Two Numbers
- cf424c 亦或交换律 模循环节 亦或前缀和
- 项目管理学习总结(4)——项目团队,如何展开有效沟通?
- 3、spring集成quartz
- python常用模块之random模块
- ATLCOM服务端连接点,advise返回CONNECT_E_CANNOTCONNECT的一个可能原因
- 只有程序员能听懂的笑话,你知道几个?
- 机器学习-数据挖掘面试题
- 能够正常使用的,经过测试的java+jquery+webcam调用本地摄像头拍照,然后将拍照结果上传数据库blob字段功能的实现(一)
- mac系统(macOS)编辑器关闭自动转换英文单、双引号为中文、自动拼写检查等
- CSS样式----盒子模型(图文详解)
- GT gps文件各字段含义