Quartz是一个Java开源的作业调度框架。官方网站:http://www.opensymphony.com/quartz/
IBM网站上有一篇简单易懂的文章:http://www.ibm.com/developerworks/cn/java/j-quartz/
Quartz.net是从java版本移植到.net版本的。官方网站:http://quartznet.sourceforge.net/
网上找了好多教程,但没有一篇是关于如何在ASP.NET中使用的代码。既然它适用于任何的.net程序,当然也就适用于asp.net的web应用。
(1)在web.config中进行相关配置

<configSections>

<section name="quartz" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089"/>

<sectionGroup name="common">

<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging"/>

</sectionGroup>

</configSections>

<common>

<logging>

<factoryAdapter type="Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter, Common.Logging">

<arg key="showLogName" value="true"/>

<arg key="showDataTime" value="true"/>

<arg key="level" value="DEBUG"/>

<arg key="dateTimeFormat" value="HH:mm:ss:fff"/>

</factoryAdapter>

</logging>

</common>

<quartz>

<add key="quartz.scheduler.instanceName" value="ExampleDefaultQuartzScheduler"/>

<add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz"/>

<add key="quartz.threadPool.threadCount" value="10"/>

<add key="quartz.threadPool.threadPriority" value="2"/>

<add key="quartz.jobStore.misfireThreshold" value="60000"/>

<add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz"/>

</quartz>
另外我自己加了一个配置项:

<appSettings>

<add key="cronExpr" value="0 0 8-17/1 ? * 2-6"/>

</appSettings>
(2)创建一个普通类,实现Quartz.IJob接口
接口非常简单,只要在Execute()方法中进行逻辑处理就可以了。比如,读取数据库数据,或者是读取电子邮件。
(3)在Global.asax文件中启动工作调度
这便于我们在web应用启动时,就启动工作调度。
需要注意的是,当Application_End的时候,需要关闭Quartz的工作。
OK了,可以在ASP.NET中正常使用了。