.NET Core 2.2使用最新版的Quartz.Net3.0.7 入門教程

Quartz是什麼?官網:http://www.quartz-scheduler.org

Quartz 是一個完全由 Java 編寫的開源作業調度框架,爲在 Java 應用程序中進行作業調度提供了簡單卻強大的機制。

Quartz 可以與 J2EE 與 J2SE 應用程序相結合也可以單獨使用。

Quartz 允許程序開發人員根據時間的間隔來調度作業。

Quartz 實現了作業和觸發器的多對多的關係,還能把多個作業與不同的觸發器關聯

Quartz.Net 是Quartz 的net實現 ,github:https://github.com/quartznet/quartznet

在項目的開發過程中,難免會遇見後需要後臺處理的任務,例如定時發送郵件通知、後臺處理耗時的數據處理等,這個時候你就需要Quartz.Net了。

Quartz.Net是純淨的,它是一個.Net程序集,是非常流行的Java作業調度系統Quartz的C#實現。

Quartz.Net一款功能齊全的任務調度系統,從小型應用到大型企業級系統都能適用。功能齊全體現在觸發器的多樣性上面,即支持簡單的定時器,也支持Cron表達式;即能執行重複的作業任務,也支持指定例外的日曆;任務也可以是多樣性的,只要繼承IJob接口即可。

對於小型應用,Quartz.Net可以集成到你的系統中,對於企業級系統,它提供了Routing支持,提供了Group來組織和管理任務,此外還有持久化、插件功能、負載均衡和故障遷移等滿足不同應用場景的需要。

實例:

打開vs2017新建一個core的控制檯項目,

 

 

 檢查這個core版本是不是2.2,如果不是,可以去https://dotnet.microsoft.com/download/visual-studio-sdks?utm_source=getdotnetsdk&utm_medium=referral

 

 

 

我們先引用Quartz.Net 程序包:

 

 來創建一個Job類HelloQuartzJob:

    public class HelloQuartzJob : IJob
    {
        public Task Execute(IJobExecutionContext context)
        {
            return Task.Factory.StartNew(() =>
            {
                Console.WriteLine("Hello Quartz.Net");
            });
        }
    }

然後在Program.cs裏面寫這個調度:

static async Task MainAsync()
{
    var schedulerFactory = new StdSchedulerFactory();
    var scheduler = await schedulerFactory.GetScheduler();
    await scheduler.Start();
    Console.WriteLine($"任務調度器已啓動");

    //創建作業和觸發器
    var jobDetail = JobBuilder.Create<HelloQuartzJob>().Build();
    var trigger = TriggerBuilder.Create()
                                .WithSimpleSchedule(m => {
                                    m.WithRepeatCount(3).WithIntervalInSeconds(1);
                                })
                                .Build();

    //添加調度
    await scheduler.ScheduleJob(jobDetail, trigger);
}

Main需要改一下

        static async Task Main(string[] args)
        {
            Console.WriteLine("Hello World!");
           
            await MainAsync();
            Console.ReadKey();

        }

這樣運行會報錯,打開項目屬性,生成,高級,修改語言版本爲c#7.1,或c#7.2,或c#7.3

 

 

修改之後,沒有錯誤,運行成功:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章