Quartz.net

Quartz是一个任务日程管理系统,这个系统可以与任何其他软件系统集成或者一起使用
摘要: 很多同学都在用Quartz.NET做任务调度,任务调度情况怎么样啊,需要暂停某个任务,运行下某个任务,需要有管理工具的支持,本篇文章是向你介绍Quartz.NET的管理工具方面的几个开源项目。工具有两...阅读全文
posted @ 2012-01-15 18:29 张善友 阅读(2570) | 评论 (6) 编辑
摘要: 经过整整1年多时间的开发,Quartz.NET 2.0发布了beta版,对应于Java Quartz的2.1版本。整个版本相对于1.0版本进行了大量的修改,单元测试的代码更友好(重构了更多的接口),A...阅读全文
posted @ 2011-10-15 20:25 张善友 阅读(3407) | 评论 (19) 编辑
摘要: 企业系统和网站系统都需要处理大量的邮件、短信等消息通知系统。在进行系统设计时,除了对安全、事务等问题给与足够的重视外,性能也是一个不可避免的问题所在,必须充分地考虑访问量、数据流量、服务器负荷的问题。本文基于SQL Server 2008 Service Broker、WCF、Windows 服务以及调度框架Quartz.NET实现一个消息通知系统。阅读全文
posted @ 2011-04-01 21:11 张善友 阅读(1386) | 评论 (1) 编辑
摘要: 这个版本包含1.0版本发布以来发现的bug修复,也包括使用AdoJobStore时的性能优化,增加了一个新特性是对SQL Server Compact Edition的支持。 阅读全文
posted @ 2009-05-17 19:48 张善友 阅读(1749) | 评论 (1) 编辑
摘要: Quartz.NET 项目在Marko Lahma的领导下,经历了2年多时间的开发,bug修复和新特性开发终于发布了1.0版本,这个版本对Quartz.NET来说是一个重大的里程碑。这个版本对应Java的Quartz 1.6.2版本。阅读全文
posted @ 2008-11-10 21:35 张善友 阅读(1544) | 评论 (2) 编辑
摘要: 将Quartz.NET集成到 Castle中 例子代码使用的Quartz.net版本是0.6,Quartz.NET 0.9 发布了 ,最新版本支持通过配置文件来完成后台的作业调度,不必手工创建Trigger和Scheduler。阅读全文
posted @ 2007-12-09 18:39 张善友 阅读(5010) | 评论 (6) 编辑
摘要: quartz.net 0.9已经发布。这是较早的0.7版本,改名表明成熟度和功能完整性。这个版本主要的特性是bug修复和支持基于xml配置 配置调度和remoting的支持, xml的配置使得现在你更容易设定的调度的代码,remoting的功能,可让您控制调度越过应用领域的边界。quartz.net dll现在也做了签名,你可以把它添加到GAC中。这个版本中也有一个很大的改变:使用UTC配置的调度在quertz.NET上都是可工作的。
阅读全文
posted @ 2007-12-03 07:45 张善友 阅读(3861) | 评论 (8) 编辑
摘要: Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架、AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的应用程序提供了很好的服务.具体可参看TerryLee的Castle 开发系列文章。
可以通过称为 Facility 的组件用控制反转 (Inversion of Control, IoC) 和依赖注入将 第三方组件插入内核中。Startable Facility当一个组件满足一定的依赖关系之后,让它自动运行,比如说启动一个窗体或者启动某种服务。
Startable Facility的使用可以说是非常地简单,只要我们的组件实现了IStartable接口就可以了,关于Startable Facility具体可参看Castle IOC容器实践之Startable Facility(一)、Castle IOC容器实践之Startable Facility(二)。
Quartz 是一个要与 Castle集成的大项目,因为它仅需要您用 Castle的生命周期来启动和停止它。这意味着,阅读全文
posted @ 2007-09-06 21:11 张善友 阅读(4815) | 评论 (10) 编辑
摘要: 8月份翻译了Quartz.NET的官方课程:开源的作业调度框架 - Quartz.NET, 有的朋友抱怨难用,确实,目前Qiartz.NET的最新版本还是0.6,还存在很多bug和不完善的地方。本文使用一系列代码示例介绍 Quartz.NET API,演示它的机制,例如作业、触发器、作业仓库。阅读全文
posted @ 2007-09-04 20:59 张善友 阅读(14436) | 评论 (7) 编辑
摘要: Quartz.NET官方的开发指南教程的中文版:英文版的参照官方网站(http://quartznet.sourceforge.net/tutorial.html) Quartz.net官方开发指南 第一课:使用Quartz.net Quartz.net官方开发指南 第二课:Jobs And Triggers Quartz.net官方开发指南 第三课:更多关于Jobs和JobDetails Quartz.net官方开发指南 第四课:关于Triggers更多内容 Quartz.net官方开发指南 第五课: SimpleTrigger Quartz.net官方开发指南 第六课 : CronTrigger Quartz.net官方开发指南 第七课 : TriggerListeners和JobListeners Quartz.net官方开发指南 第八课:SchedulerListeners Quartz.net官方开发指南 第九课: JobStore Quartz.net阅读全文
posted @ 2007-08-25 10:31 张善友 阅读(19438) | 评论 (28) 编辑
摘要: Plug-Ins 插件 :Quartz提供了一个接口(ISchedulerPlugin)来插入附加的功能。
JobFactory :当触发器触发时,与之相关联的任务被Scheduler中配置的JobFactory所实例华。缺省的JobFactory只是简单地创建一个Job实例。你也许想创建自己的JobFactory实现,以完成诸如让应用的IoC 或者 DI容器产生/初始化job实例的功能。
'Factory-Shipped' Jobs :Quartz也提供了一些可以在你的应用中使用的实用的Jobs,比如,发邮件、调用远程对象。这些外来的Job可以在Quartz.Jobs命名空间里中找到。

阅读全文
posted @ 2007-08-25 10:17 张善友 阅读(2005) | 评论 (1) 编辑
摘要: 集群只能用在使用ADO.NET-Jobstore的情况。特新包括负载均衡和容错(如果JobDetail的"request recovery"标记被设置为true)阅读全文
posted @ 2007-08-25 10:08 张善友 阅读(2409) | 评论 (5) 编辑
摘要: JobStore负责保持对所有scheduler “工作数据”追踪,这些工作数据包括:job(任务),trigger(触发器),calendar(日历)等。为你的Quartz scheduler选择合适的JobStore是非常重要的一步,幸运的是,如果你理解了不同的JobStore之间的差别,那么选择就变得非常简单。在提供产生scheduler 实例的SchedulerFactory的属性文件中声明scheduler所使用的JobStore(以及它的配置)。阅读全文
posted @ 2007-08-25 09:45 张善友 阅读(2870) | 评论 (1) 编辑
摘要: Quartz以模块方式构架,因此,要使它运行,几个组件必须很好的咬合在一起。幸运的是,已经有了一些现存的助手可以完成这些工作阅读全文
posted @ 2007-08-25 09:33 张善友 阅读(3450) | 评论 (1) 编辑
摘要: SchedulerListeners同TriggerListeners及JobListeners非常相似,SchedulerListeners只接收与特定trigger 或job无关的Scheduler自身事件通知。
Scheduler相关的事件包括:增加job或者trigger,移除Job或者trigger, scheduler内部发生的错误,scheduler将被关闭的通知,以及其他。
阅读全文
posted @ 2007-08-25 09:16 张善友 阅读(1875) | 评论 (1) 编辑
摘要: 监听器是在scheduler事件发生时能够执行动作的对象。可以看出,TriggerListeners接收与triggers相关的事件,而JobListeners则接收与Job相关的事件。阅读全文
posted @ 2007-08-25 09:12 张善友 阅读(2369) | 评论 (2) 编辑
摘要: 如果你需要像日历那样按日程来触发任务,而不是像SimpleTrigger 那样每隔特定的间隔时间触发,CronTriggers通常比SimpleTrigger更有用。
使用CronTrigger,你可以指定诸如“每个周五中午”,或者“每个工作日的9:30”或者“从每个周一、周三、周五的上午9:00到上午10:00之间每隔五分钟”这样日程安排来触发。甚至,象SimpleTrigger一样,CronTrigger也有一个StartTime以指定日程从什么时候开始,也有一个(可选的)EndTime以指定何时日程不再继续。
阅读全文
posted @ 2007-08-25 08:54 张善友 阅读(4981) | 评论 (3) 编辑
摘要: 如果需要让任务只在某个时刻执行一次,或者,在某个时刻开始,然后按照某个时间间隔重复执行,简单地说,如果你想让触发器在2007年8月20日上午11:23:54秒执行,然后每个隔10秒钟重复执行一次,并且这样重复5次。那么SimpleTrigger 就可以满足你的要求。

阅读全文
posted @ 2007-08-19 21:48 张善友 阅读(4955) | 评论 (5) 编辑
摘要: 同Job一样,trigger非常容易使用,但它有一些可选项需要注意和理解,同时,trigger有不同的类型,要按照需求进行选择阅读全文
posted @ 2007-08-19 21:34 张善友 阅读(3292) | 评论 (1) 编辑
摘要: 在所实现的类成为真正的“Job”时,期望任务所具有的各种属性需要通知给Quartz。通过JobDetail类可以完成这个工作,这个类在前面的章节中曾简短提及过。现在,我们花一些时间来讨论Quartz中Jobs的本质和Job实例的生命周期。阅读全文
posted @ 2007-08-16 20:54 张善友 阅读(4261) | 评论 (2) 编辑
摘要: JobDetail对象由Quartz客户端在Job被加入到scheduler时创建。它包含了Job的各种设置属性以及一个JobDataMap对象,这个对象被用来存储给定Job类实例的状态信息。
Trigger对象被用来触发jobs的执行。你希望将任务纳入到进度,要实例化一个Trigger并且“调整”它的属性以满足你想要的进度安排。Triggers也有一个JobDataMap与之关联,这非常有利于向触发器所触发的Job传递参数。Quartz打包了很多不同类型的Trigger,但最常用的Trigge类是SimpleTrigger和CronTrigger。
阅读全文
posted @ 2007-08-16 20:20 张善友 阅读(5515) | 评论 (5) 编辑
摘要: 使用scheduler之前应首先实例化它。使用SchedulerFactory可以完成scheduler的实例化.阅读全文
posted @ 2007-08-16 18:12 张善友 阅读(8052) | 评论 (6) 编辑