1. 程式人生 > 程式設計 >Quartz.Net實現原理及使用方法詳解

Quartz.Net實現原理及使用方法詳解

排程器(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)的快速概覽,方便你更好地理解這個例子。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。