[英]How to schedule tasks using Quartz.Net inside a Windows Service?
我在VS中創建了一個Windows服務項目,並在其中配置Quartz.Net以立即運行任務。 注冊任務的代碼運行時沒有異常,但是就我的調試所知,任務永遠不會執行。
我無法確定,因為調試Windows服務是非常不同的。 我這樣做的方式是從我的代碼以編程方式啟動調試器。 Quartz.Net在一個單獨的線程上運行作業,但我不確定VS2010在調試Windows服務時是否可以看到其他正在運行的線程。
有沒有人做過我以前嘗試過的事情? 任何提示都表示贊賞。
PS。 我不想使用Quartz.Net自己的服務。
作業未執行的最常見原因之一是因為您需要在調度程序實例上調用Start()方法。
http://quartznet.sourceforge.net/faq.html#whytriggerisntfiring
但是,如果我們沒有某種代碼片段來執行調度程序創建和作業注冊,那么很難說問題是什么。
我看到這有點過時了,但它在各種搜索中多次出現!
絕對查看本文,它在實例化調度程序時使用XML配置。 http://miscellaneousrecipesfordotnet.blogspot.com/2012/09/quick-sample-to-schedule-tasks-using.html
如果您不想使用XML(動態創建的任務等),請使用以下內容替換上面文章中的“運行”過程:
public void Run()
{
// construct a scheduler factory
ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
_scheduler = schedulerFactory.GetScheduler();
IJobDetail job = JobBuilder.Create<TaskOne>()
.WithIdentity("TaskOne", "TaskOneGroup")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("TaskOne", "TaskOneGroup")
.StartNow()
.WithSimpleSchedule(x => x.WithIntervalInSeconds(20).RepeatForever())
.Build();
_scheduler.ScheduleJob(job, trigger);
_scheduler.TriggerJob(job.Key);
_scheduler.Start();
}
注 - 使用Quartz .NET 2.1.2,.NET 4
干杯!
我以前在Windows服務中成功使用過Quart.NET。 服務啟動時,我創建了Scheduler Factory,然后獲取Scheduler。 然后我啟動調度程序,它隱式讀入我在服務的App.config中指定的配置XML。
Quartz.NET基本設置: http ://quartznet.sourceforge.net/tutorial/lesson_1.html
App.config設置問題: http ://groups.google.com/group/quartznet/browse_thread/thread/abbfbc1b65e20d63/b1c55cf5dabd3acd?lnk=gst&q=%3Cquartz%3E# b1c55cf5dabd3acd
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.