quartz定时任务实例

一、spring注解方式

<!--&lt;!&ndash;配置文件添加允许Spring注解&ndash;&gt;-->
<!--<task:annotation-driven scheduler="qbScheduler"/>-->
<!--<task:scheduler id="qbScheduler" pool-size="10"/>-->

<!--类-->

import org.springframework.scheduling.annotation.Scheduled

class XXX{

@Scheduled(cron="0 */2 * * * ?") //这里是两分钟触发一次

public void METHOD(){

//方法要做的事

}

}

二、XML方式

<?xml version="1.0"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="quartzProperties">
<props><!--用于存储内存中的调度信息-->
<prop key="org.quartz.jobStore.class">
org.quartz.simpl.RAMJobStore
</prop>
</props>
</property><!--触发器创建-->
<property name="triggers">
<list>
<ref bean="XXXTrigger"/>
</list>
</property>
</bean>

<!-- 方法名称去执行任务的一个工厂bean -->
<bean id="taskJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="XXX" />  //要调用的对象
<property name="targetMethod" value="METHOD" />//要调用的方法
<property name="concurrent" value="false" /><!--多个job不会并发运行,默认是true-->
</bean>

<!-调用对应触发器->
<bean id="XXXTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="taskJob" />//要调度的任务对象BEAN
<property name="cronExpression" value="0 */2 * * * " />//每两分钟执行一次
</bean>

<!--定义调用目标类-->

<bean id="XXX" class="com.xx.xx.xx.task.xxxQuartz"/>
</beans>

原文地址:https://www.cnblogs.com/panca/p/10716651.html

时间: 2024-10-14 01:19:55

quartz定时任务实例的相关文章

Quartz定时任务使用小记(11月22日)

骤然接触quartz,先从小处着手,why,what,how quartz定时任务: 为什么使用quartz定时任务,以及定时任务在实际应用场景下的特定需求. 1.用户方面的需要,为了提供更好的使用体验,例如,针对用户注册的监听,最终得到用户使用一定阶段各种提醒.互动方面的业务使用,以及针对用户生日的监听及定时任务的设置 2.数据更新的需要,针对公司日终报表的设计,这里就涉及今日的主题,数据库相关存储过程的调用.存储过程是可执行的代码块,效率相对java后台代码效率要高,尤其是针对查询时,选用存

quartz定时器实例

配置web <!--启动任务监听器--> <listener> <listener-class>com.suntek.web.pay.listener.ContextListener</listener-class> </listener> 监听类 public class ContextListener implements ServletContextListener { public void contextDestroyed(Servle

Quartz定时任务学习(二)web应用/Quartz定时任务学习(三)属性文件和jar

web中使用Quartz 1.首先在web.xml文件中加入 如下内容(根据自己情况设定) 在web.xml中添加QuartzInitializerServlet,Quartz为能够在web应用中使用,提供了一个QuartzInitializerServlet和一个QuartzInitializerListener,用于在加载web应用时,对quartz进行初始化. <servlet> <servlet-name> QuartzInitializer </servlet-na

Spring整合Quartz定时任务 在集群、分布式系统中的应用(Mysql数据库环境)

Spring整合Quartz定时任务 在集群.分布式系统中的应用(Mysql数据库环境) 转载:http://www.cnblogs.com/jiafuwei/p/6145280.html 单个Quartz实例能给予你很好的Job调度能力,但它不能满足典型的企业需求,如可伸缩性.高可靠性满足.假如你需要故障转移的能力并能运行日益增多的 Job,Quartz集群势必成为你应用的一部分了.使用 Quartz 的集群能力可以更好的支持你的业务需求,并且即使是其中一台机器在最糟的时间崩溃了也能确保所有的

Quartz定时任务帮助类

using Quartz;using Quartz.Impl;using System;using System.Collections.Generic;using System.Collections.Specialized;using System.Linq;using System.Text;using System.Threading.Tasks; namespace CRM.ThirdAPITools.QuartzHelper{ /// <summary> /// Quartz定时任

Spring quartz定时任务service注入问题

今天想单元测试一下spring中的quartz定时任务,一顿折腾,到最后总是发现job类里注入的service为null.一开始还以为spring的配置问题,各种找原因,最后还是确定是没有注入. 就去网上搜搜吧.也找出来一些眉目.简单的理解这个原因是job是在quartz中实例化出来的,不受spring的管理.所以就导致注入不进去了.参考这个文章 http://www.tuicool.com/articles/Qjyamu 找着试试的态度,就按照文章里说的.new一个类 public class

Quartz定时任务的并行与串行

Quartz定时任务的执行策略有并行和串行之分. 所谓并行是指多个任务同时运行的情况,即若两个任务的执行时间存在重叠,两个任务同时运行的情况. 串行则是指一个任务必须等其前一个任务执行完毕之后再执行的策略. Spring集成Quartz时,控制定时任务的并行和串行是通过concurrent(译:同时发生的; 同时完成的; 同时存在的)属性实现的. 当任务系统存在多个定时任务时,任务执行很可能会存在时间上的重叠,通过设置concurrent属性为false,可以避免任务并行执行,job只能在其前一

Quartz定时任务和IIS程序池闲置超时时间冲突解决方案

一.问题描述 Bs项目中用Quartz功能执行一个定时任务(每隔5分钟执行一个Job),正常情况,Quartz定时任务会5分钟执行一次,但IIS程序池闲置 超时默认为20分钟,造成的结果是:定时任务只执行了4次.那么怎么解决程序池闲置超时引进Quartz定时任务停止执行问题? 二.解决方案方案一:设置IIS默认闲置超时为1740(跟程序池默认回收时间1740)方案二:IIS服务器规定的时间内,定时向服务器取一次数据 三.方案介绍1)方案一:设置IIS默认闲置超时为1740(跟程序池默认回收时间1

Quartz定时任务学习(二)web应用

web中使用Quartz 1.首先在web.xml文件中加入 如下内容(根据自己情况设定) 在web.xml中添加QuartzInitializerServlet,Quartz为能够在web应用中使用,提供了一个QuartzInitializerServlet和一个QuartzInitializerListener,用于在加载web应用时,对quartz进行初始化. <servlet>         <servlet-name>             QuartzInitial