介紹
上篇已經瞭解Quartz.NET的基本使用方法了。但如果想方便的知道某個作業執行情況,需要暫停,啟動等操作行為,這時候就需要個Job管理的介面。
本文介紹Quartz.NET如何進行遠端job管理,如圖:
實戰
一:作業服務端
static void Main(string[] args) { var properties = new NameValueCollection(); properties["quartz.scheduler.instanceName"] = "RemoteServerSchedulerClient"; // 設定執行緒池 properties["quartz.threadPool.type"] = "Quartz.Simpl.SimpleThreadPool, Quartz"; properties["quartz.threadPool.threadCount"] = "5"; properties["quartz.threadPool.threadPriority"] = "Normal"; // 遠端輸出配置 properties["quartz.scheduler.exporter.type"] = "Quartz.Simpl.RemotingSchedulerExporter, Quartz"; properties["quartz.scheduler.exporter.port"] = "556"; properties["quartz.scheduler.exporter.bindName"] = "QuartzScheduler"; properties["quartz.scheduler.exporter.channelType"] = "tcp"; var schedulerFactory = new StdSchedulerFactory(properties); var scheduler = schedulerFactory.GetScheduler(); var job = JobBuilder.Create<PrintMessageJob>() .WithIdentity("myJob", "group1") .Build(); var trigger = TriggerBuilder.Create() .WithIdentity("myJobTrigger", "group1") .StartNow() .WithCronSchedule("/10 * * ? * *") .Build(); scheduler.ScheduleJob(job, trigger); scheduler.Start(); }
public class PrintMessageJob : IJob { public void Execute(IJobExecutionContext context) { Console.WriteLine("Hello!"); } }
啟動如下
二:作業遠端管理端,無需寫任何程式碼,引用官方程式集,嵌入到已有的web網站。
PM> Install-Package CrystalQuartz.Remote
Webconfig 需要配置的地方
<configuration> <crystalQuartz> <provider> <add property="Type" value="CrystalQuartz.Core.SchedulerProviders.RemoteSchedulerProvider, CrystalQuartz.Core" /> <add property="SchedulerHost" value="tcp://127.0.0.1:556/QuartzScheduler" /> <!--TCP監聽的地址--> </provider> </crystalQuartz> <system.webServer> <!-- Handler攔截處理了,輸出作業監控頁面--> <handlers> <add name="CrystalQuartzPanel" verb="*" path="CrystalQuartzPanel.axd" type="CrystalQuartz.Web.PagesHandler, CrystalQuartz.Web" /> </handlers> </system.webServer> </configuration>
Web管理介面
其他
CrystalQuartz 提供基礎功能,可以繼續在此基礎上進行二次開發,另外推薦使用Window服務寄宿,比較方法。
參考資源
張善友 http://www.cnblogs.com/shanyou/archive/2012/01/15/2323011.html
CrystalQuartz開源的地址 https://github.com/guryanovev/CrystalQuartz