.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