.定时任务的实现,比如有个任务是要晚上2点10分的时候要去触发的,先定义这个任务类RskBookFilterInitDiningService.cs,这里其实有两种实现,一种是需要继承QuartzJobObject任务类的,比如下面这个,还有一种直接指定执行某个service的某个方法,先说第一种
namespace Bll.ExtFunc
{
public class RskBookFilterInitDiningService : QuartzJobObject
{
public string UserName { get; set; }
private Spring.Context.IApplicationContext _ctx;
protected Spring.Context.IApplicationContext ctx
{
get
{
if (_ctx == null)
_ctx = Spring.Context.Support.ContextRegistry.GetContext();
return _ctx;
}
}
private IRskBookIFlterInitService _rskBookFilterInitService;
public IRskBookIFlterInitService RskBookFilterInitService
{
get
{
if (_rskBookFilterInitService == null)
{
_rskBookFilterInitService = (IRskBookIFlterInitService)ctx["RskBookFilterInitService"];
}
return _rskBookFilterInitService;
}
}
protected override void ExecuteInternal(JobExecutionContext context)
{
//定时任务每天晚上2点左右执行,全量执行
RskBookFilterInitService.SaveAutoInitAll();
}
} }
.需要继承QuartzJobObject的配置文件
.1任务分发配置,JobType 执行任务的类型定义描述
<object name="Dining" type="Spring.Scheduling.Quartz.JobDetailObject, Spring.Scheduling.Quartz">
<!--RskBookFilter全量初始化-->
<property name="JobType" value="Bll.ExtFunc.RskBookFilterInitDiningService, RSKBLL"/>
<!-- 注入被调度的对象 -->
<property name="JobDataAsMap">
<dictionary>
<entry key="UserName" value="admin"/>
</dictionary>
</property>
</object>
2.2 任务分发好了,接下就是选择触发器的触发类型了,这里是CronTriggerObject的实现,每天晚上2点10分启动任务
<object id="cronTrigger" type="Spring.Scheduling.Quartz.CronTriggerObject, Spring.Scheduling.Quartz">
<property name="jobDetail" ref="Dining"/>
<!--晚上2:10分的时候自己启动RskBookFilterInitDiningService这个服务 全量初始化-->
<property name="cronExpressionString" value="0 10 2 * * ?"/>
</object>
2.3 触发器的装载
<object type="Spring.Scheduling.Quartz.SchedulerFactoryObject, Spring.Scheduling.Quartz">
<!--触发器-->
<property name="triggers">
<list>
<ref object="cronTrigger"/>
</list>
</property>
</object> 好了接下来说另外一种timer,可以指定程序启动多久后开始执行startDelay,还有执行间隔repeatInterval,如我下面演示的会在程序启动120s后,自己启动,每隔10800s也就是每隔3小时循环执行 不说了上配置文件
.配置文件
3.1 不需继承,可直接指定执行任务的service,以及执行哪个方法
<object id="jobDetail" type="Spring.Scheduling.Quartz.MethodInvokingJobDetailFactoryObject, Spring.Scheduling.Quartz">
<!-- 不必继承IJob接口 -->
<property name="TargetObject" ref="RskBookFilterInitService"/>
<!--RskBookFilter增量初始化-->
<property name="TargetMethod" value="SaveAutoInitIncrement"/>
</object> <object id="jobDetailNonConcurrent" type="Spring.Scheduling.Quartz.MethodInvokingJobDetailFactoryObject, Spring.Scheduling.Quartz">
<property name="targetObject" ref="RskBookFilterInitService"/>
<property name="targetMethod" value="SaveAutoInitIncrement"/>
<!-- 并发等待 -->
<property name="concurrent" value="false"/>
</object>
3.2 定义触发类型
<object id="simpleTrigger" type="Spring.Scheduling.Quartz.SimpleTriggerObject, Spring.Scheduling.Quartz">
<property name="jobDetail" ref="jobDetail"/>
<!-- 120s后启动 -->
<property name="startDelay" value="120s"/>
<!-- 每3个小时更新一次 增量初始化-->
<property name="repeatInterval" value="10800s"/>
</object>
3.3 装载触发器,可以装载多个触发器
<object type="Spring.Scheduling.Quartz.SchedulerFactoryObject, Spring.Scheduling.Quartz">
<!--触发器-->
<property name="triggers">
<list>
<ref object="simpleTrigger"/>
<ref object="cronTrigger"/>
</list>
</property>
</object>

Spring.Scheduling.Quartz 作业的应用(定时任务和循环触发任务)的更多相关文章

  1. java定时任务以及Spring使用Quartz调度器执行定时任务

    java下的java.util.Timer中类可以实现定时执行任务的执行: 如:让任务立即执行,每隔1s循环执行一次 public class TimerClass { public static v ...

  2. Spring.Scheduling.Quartz的使用

    最近因使用Spring.Net框架而接触.了解到其与Quartz.Net的集成,即Spring.Scheduling.Quartz模块. Spring通过对Quartz.Net的封装,采用了sprin ...

  3. 使用spring+quartz配置多个定时任务

    Spring被用在了越来越多的项目中, quartz也被公认为是比较好用的定时器设置工具, 在这里通过一个demo说明如何使用spring和quartz配置多个定时任务. 环境: eclipse + ...

  4. Quartz学习总结(1)——Spring集成Quartz框架

    一.Quartz简介 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简 ...

  5. 使用Spring整合Quartz轻松完成定时任务

    一.背景 上次我们介绍了如何使用Spring Task进行完成定时任务的编写,这次我们使用Spring整合Quartz的方式来再一次实现定时任务的开发,以下奉上开发步骤及注意事项等. 二.开发环境及必 ...

  6. Spring整合Quartz轻松完成定时任务

    一.背景 上次我们介绍了如何使用Spring Task进行完成定时任务的编写,这次我们使用Spring整合Quartz的方式来再一次实现定时任务的开发,以下奉上开发步骤及注意事项等. 二.开发环境及必 ...

  7. (2)Spring集成Quartz定时任务框架介绍和Cron表达式详解

    在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等.我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但 ...

  8. Spring集成Quartz定时任务框架介绍和Cron表达式详解

    原文地址:http://www.cnblogs.com/obullxl/archive/2011/07/10/spring-quartz-cron-integration.html 在JavaEE系统 ...

  9. spring整合quartz实现定时任务

    需求:spring+mybatis框架已经搭建好,需要实现一个定时任务. 一:导出相应的jar包 quartz-all-1.6.5.jar获取quartz-alll-1.6.6.jar spring- ...

随机推荐

  1. tp框架总体学习总结(一)

    一.TP框架的下载和安装 Tp框架下载网址:http://www.thinkphp.cn/ 在wamp的www目录下创建一个目录tpshop目录 1.  将下载好的包压缩后将文件包里的所有文件复制到创 ...

  2. C#中有哪些类型的数组

    一维数组(Single-Dimensional)多维数组(Multidimensional)交错数组(Jagged arrays):交错数组是元素为数组的数组.交错数组元素的维度和大小可以不同.交错数 ...

  3. 转: python如何安装pip和easy_installer工具

    原文地址: http://blog.chinaunix.net/uid-12014716-id-3859827.html 1.在以下地址下载最新的PIP安装文件:http://pypi.python. ...

  4. [转]在WPF中区别TextBlock和Label

    TextBlock和Label都是用来显示少量数据的.好多文章对Label存在的描述都是它允许使用"快速获取"."快速获取"就是允许你用Alt加上其它的按键快速 ...

  5. [delphi]SetWindowsHookExA函数入口处修改

    library Project2; uses SysUtils, Classes, windows, Dialogs; {$R *.res} function GetModuleHandleA(a: ...

  6. Java学习基础1

    Java 平台: Java API JVM  特点:可跨平台  Java 运行机制:           编译                         运行 Java文件-------> ...

  7. socket选项总结(setsocketopt)

    功能描述:        获取或者设置与某个套接字关联的选 项.选项可能存在于多层协议中,它们总会出现在最上面的套接字层.当操作套接字选项时,选项位于的层和选项的名称必须给出.为了操作套接字层的选项, ...

  8. MVC NPOI Linq导出Excel通用类

    之前写了一个模型导出Excel通用类,但是在实际应用中,可能不是直接导出模型,而是通过Linq查询后获取到最终结果再导出 通用类: public enum DataTypeEnum { Int = , ...

  9. c++总结01

    今天编写了四个小程序分别是“石头剪刀布游戏”“数字之间加空格输出”“蛇形矩阵”“螺旋矩阵”. 通过编写石头剪刀布代码 熟悉了switch语句和if语句的使用,同时也运用了do..while语句,其中 ...

  10. Zend Studio

    下载地址:http://www.zend.com/en/products/studio/downloads#Windows 详情:http://baike.baidu.com/link?url=8rX ...