Quartz.Net實現原理及使用方法詳解
阿新 • • 發佈:2020-12-03
排程器(scheduler)必須在例項化之後才能使用(誰能想到呢?)。你可以通過一個ISchedulerFactory介面的例項來實現它。
例項化排程器(scheduler)後,可以啟動、處於待機模式或者關閉。注意,一個排程器(scheduler)一旦被關閉,它必須被重新例項化才可以再次啟動。直到排程器(scheduler)啟動,觸發器(Triggers)才會被觸發(執行任務(job)),但處於暫停模式的觸發器(trigger)不會被觸發。
這裡有一段簡單的程式碼,例項化了一個排程器(scheduler)並啟動了它,還排程了一個任務(job)去執行。
使用 Quartz.NET
// construct a scheduler factory 構造一個scheduler工廠 NameValueCollection props = new NameValueCollection { { "quartz.serializer.type","binary" } }; StdSchedulerFactory factory = new StdSchedulerFactory(props); // get a scheduler 獲取一個scheduler IScheduler sched = await schedFact.GetScheduler(); await sched.Start(); // define the job and tie it to our HelloJob class 定義一個job,與HelloJob類關聯 IJobDetail job = JobBuilder.Create<HelloJob>() .WithIdentity("myJob","group1") .Build(); // Trigger the job to run now,and then every 40 seconds 觸發任務馬上執行,並且每40秒執行一次 ITrigger trigger = TriggerBuilder.Create() .WithIdentity("myTrigger","group1") .StartNow() .WithSimpleSchedule(x => x .WithIntervalInSeconds(40) .RepeatForever()) .Build(); await sched.ScheduleJob(job,trigger);
如你所見,使用 Quartz.NET 非常簡單。之後我們會給出一個關於任務(Jobs)和觸發器(Triggers)的快速概覽,方便你更好地理解這個例子。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。