簡體   English   中英

如何在Windows服務中使用Quartz.Net安排任務?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM