• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

在ASP.NET中使用Quartz.net进行工作调度

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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接口
public class RetrieveAj2003T140Job : Quartz.IJob
}

接口非常简单,只要在Execute()方法中进行逻辑处理就可以了。比如,读取数据库数据,或者是读取电子邮件。

(3)在Global.asax文件中启动工作调度
这便于我们在web应用启动时,就启动工作调度。

<%@ Import Namespace="Quartz" %>

<script runat="server">

    IScheduler sched;
    void Application_Start(object sender, EventArgs e) 
</script>

需要注意的是,当Application_End的时候,需要关闭Quartz的工作。

OK了,可以在ASP.NET中正常使用了。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap