Quartz.NET
来源:互联网 发布:中文分词python 编辑:程序博客网 时间:2024/05/16 23:53
Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。
Quartz.NET框架的核心是调度器。调度器负责管理Quartz.NET应用运行时环境。Quartz不仅仅是线程和线程管理。为确保可伸缩性,Quartz.NET采用了基于多线程的架构。启动时,框架初始化一套worker线程,这套线程被调度器用来执行预定的作业。这就是Quartz.NET怎样能并发运行多个作业的原理。Quartz.NET依赖一套松耦合的线程池管理部件来管理线程环境。作业是一个执行任务的简单.NET类。只需实现Quartz.IJob接口,IJob接口包含唯一的一个方法Execute(),作业从这里开始执行。一旦实现了IJob接口和Execute ()方法,当Quartz.NET确定该是作业运行的时候,它将调用作业。Execute()方法内就是要做的事情。
代码下载地址:http://download.csdn.net/download/sdsasasd/4655892
Quartz.NET 是一个开源的作业调度框架,它可以被在小型应用程序甚至是企业级的应用程序。它有如下几个特点:
- API 操作简单,只要几行简单的代码你就可以在应用程序里面实现自己的作业调度,并实时监视作业执行情况
- 触发器功能强大,比 Windows 的任务计划提供更细的触发粒度,你可以使用“Cron表达式(后文将介绍)”来实现如:每周星期一到星期五 8:00am,5:00pm(工作时间) 执行某一件任务
- 良好的可扩展性,它基于接口编程,你可以实现自己的 Schedule 调度器,Job 作业,以及 Trigger 触发器等
- 作业可以保存在 RAM 中,也可以持久化到数据库,支持多种数据库类型:SqlServer、Oracle、MySql等
- 集群,这是一个高级应用,可以在多台计算机之间创建负载平衡、容错处理
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Quartz;using Quartz.Impl;using Common.Logging;namespace TestQuartz{ public class Job1 : IJob { private int i = 0; public void Execute(IJobExecutionContext context) { Console.WriteLine(++i); } } class Program { static void Main(string[] args) { //初始化调度器工厂 ISchedulerFactory sf = new StdSchedulerFactory(); //获取默认调度器 IScheduler scheduler = sf.GetScheduler(); //作业 IJobDetail job = JobBuilder .Create<Job1>() .WithIdentity("计算作业", "组1") .RequestRecovery() // ask scheduler to re-execute this job if it was in progress when the scheduler went down... .Build(); //触发器 ISimpleTrigger trigger = (ISimpleTrigger)TriggerBuilder.Create() .WithIdentity("触发器1", "触发器组1") .StartAt(DateBuilder.FutureDate(1, IntervalUnit.Second)) .WithSimpleSchedule(x => x.WithRepeatCount(20).WithInterval(TimeSpan.FromSeconds(5))) .Build(); //关联任务和触发器 scheduler.ScheduleJob(job, trigger); //开始任务 scheduler.Start(); Console.Read(); } }}
- Quartz.NET
- Quartz.Net
- Quartz.net
- Quartz.NET
- Quartz.net
- quartz.net
- quartz.net
- Quartz.NET - Quartz.NET Quick Start Guide
- 详细讲解Quartz.NET
- 详细讲解Quartz.NET
- 详细讲解Quartz.NET
- 详细讲解Quartz.NET
- 详细讲解Quartz.NET
- Quartz.NET 入门
- 详细讲解Quartz.NET
- Quartz.Net 学习 (1)
- Quartz.net使用总结
- 详细讲解Quartz.NET
- Android 的动作、广播、类别等标识大全
- <linux程序设计> 第四章 [ 程序参数 / 环境变量 / 日期与时间]
- 2012年总结
- 逍遥游篇总结
- 转载:(C#)一个WCF简单实例
- Quartz.NET
- Web设计师必备的10款最佳排版工具
- 迭代器的简单应用
- 查询SQL Server内存使用状况脚本
- 抽象类和接口的差别
- 我的2012——移动开发在路上
- php 36进制与10进制转换
- 慎用TCP的选项SO_LINGER
- PHP - 利用P3P实现跨域