.net core 2.1控制台使用Quartz.net實現定時任務執行


權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/qq_33435149/article/details/87932011
     

  Quartz.NET是一個功能齊全的開源作業調度系統,可用於從最小的應用程序到大型企業系統。
Quartz.NET是一個用C#編寫的純.NET庫,是一個非常流行的開源Java作業調度框架Quartz的端口。這個項目很大程度上歸功於原始的Java項目,它是父親James House和項目貢獻者。


            /***
             *   在NuGet 搜索Quartz.net
             *   我這里下載版本是 3.0.7,用的.net core 2.1框架,控制台程序
             *   先建個TestJob類繼承IJob,實現這個接口的方法
             *   Quartz.net使用了Task異步
             *
             *   public class TestJob : IJob
                {
                    public async Task Execute(IJobExecutionContext context)
                    {
                       await Task.Run(() => { Console.WriteLine("任務執行了"); });
                    }
                }
             * 
             * 
             * 
             */
 


        /// <summary>
        /// 在.net core 2.1框架,控制台程序用Quartz.net實現定時任務執行
        /// </summary>
        public async static void AsyncQuartz()
        {
            StdSchedulerFactory stdSchedulerFactory = new StdSchedulerFactory();
            IScheduler scheduler = await stdSchedulerFactory.GetScheduler();
            JobDetailImpl jdBossReport = new JobDetailImpl("jdTest", typeof(TestJob));
            IMutableTrigger mutableTrigger = CronScheduleBuilder.DailyAtHourAndMinute(11,23).Build();
            mutableTrigger.Key = new TriggerKey("trggerTest");
            await scheduler.ScheduleJob(jdBossReport, mutableTrigger);
            await scheduler.Start();
            Console.WriteLine("ok");
            Console.ReadKey();
        }

 

注:這種方式的時候job類里面必須包含一個空的構造函數,並且只會調用這個空的構造函數來構造對象,即構造函數的依賴注入在這里不好用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM