.net項目中使用Quartz


(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>

(2)創建一個普通類,實現Quartz.IJob接口

public class MyJog: IJob { public MyJog() {  }

 

public void Execute(JobExecutionContext context) { //throw new Exception("The method or operation is not implemented."); //你的處理邏輯,也就是“工作” } }

接口非常簡單,只要在Execute()方法中進行邏輯處理就可以了。比如,讀取數據庫數據,或者是讀取電子郵件。

(3)在Global.asax文件中啟動工作調度 這便於我們在web應用啟動時,就啟動工作調度。

<%@ Import Namespace="Quartz" %>

<script runat="server">

IScheduler sched; void Application_Start(object sender, EventArgs e) { // 在應用程序啟動時運行的代碼 ISchedulerFactory sf = new Quartz.Impl.StdSchedulerFactory(); sched = sf.GetScheduler(); JobDetail job = new JobDetail("job1", "group1", typeof(MyJob));

string cronExpr = "0 0 1 * * ?";

CronTrigger trigger = new CronTrigger("trigger1", "group1", "job1", "group1",cronExpr); sched.AddJob(job, true); DateTime ft = sched.ScheduleJob(trigger); sched.Start(); } void Application_End(object sender, EventArgs e) { // 在應用程序關閉時運行的代碼 if (sched != null) { sched.Shutdown(true); } }

</script>

需要注意的是,當Application_End的時候,需要關閉Quartz的工作。

最后 代碼部分完畢之后,要重啟WWW服務,並且訪問站點內任一ASPX頁面,任務方可執行!


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com