Quartz.Net - Lesson 1: 使用Quartz

Lesson 1: 使用Quartz

本系列文章是官方3.x文檔的翻譯,原文地址:https://www.quartz-scheduler.net/documentation/quartz-3.x/tutorial/index.html
目錄:
Lesson 1: 使用Quartz
Lesson 2: 任務和觸發器html

調度器(scheduler)必須在實例化以後才能使用(誰能想到呢?)。你能夠經過一個ISchedulerFactory接口的實例來實現它。c#

實例化調度器(scheduler)後,能夠啓動、處於待機模式或者關閉。注意,一個調度器(scheduler)一旦被關閉,它必須被從新實例化才能夠再次啓動。直到調度器(scheduler)啓動,觸發器(Triggers)纔會被觸發(執行任務(job)),但處於暫停模式的觸發器(trigger)不會被觸發。less

這裏有一段簡單的代碼,實例化了一個調度器(scheduler)並啓動了它,還調度了一個任務(job)去執行。ui

使用 Quartz.NET.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 很是簡單。在 Lesson 2 中,咱們會給出一個關於任務(Jobs)和觸發器(Triggers)的快速概覽,方便你更好地理解這個例子。翻譯

相關文章
相關標籤/搜索