Quartz任务调度

1.首先添加NuGet:Quartz

2.具体代码:

using Quartz;
using Quartz.Impl;
using System;
using System.Threading.Tasks;

namespace quaraz0902
{
    class Program
    {
       
        static void Main(string[] args)
        {
            Run();
            Console.ReadKey();
        }
        public int bl = 1;
        /// <summary>
        /// 任务调度的使用过程 quartz3.0.7
        /// </summary>
        /// <returns></returns>
        public async static Task Run()
        {
            // 1.创建scheduler的引用
            ISchedulerFactory schedFact = new StdSchedulerFactory();
            IScheduler sched = await schedFact.GetScheduler();

            //2.启动 scheduler
            await sched.Start();

            // 3.创建 job
            IJobDetail job = JobBuilder.Create<SimpleJob>()
                    .WithIdentity("job1", "group1")
                    .Build();

            // 4.创建 trigger
            ITrigger trigger = TriggerBuilder.Create()
                .WithIdentity("trigger1", "group1")
                 .WithSimpleSchedule(x => x.WithIntervalInSeconds(5).RepeatForever())//每五秒执行一次
                  // .WithCronSchedule("0 04 14 * * ?")     //corn从左到右(用空格隔开):秒 分 小时 月份中的日期 月份 星期中的日期 年份(可为空)
                 //例  "0 0 12 ? * WED" 在每星期三下午12: 00 执行(年份通常 省略)具体设置可以参照这个网址:https://www.cnblogs.com/a8457013/p/8515939.html
                .Build();

            // 5.使用trigger规划执行任务job
            await sched.ScheduleJob(job, trigger);
            return;
         
           
        }
        /// <summary>
        /// 任务
        /// </summary>
        public class SimpleJob : IJob
        {
            public virtual Task Execute(IJobExecutionContext context)
            {
                return Console.Out.WriteLineAsync($"job工作了 在{DateTime.Now}");
            }

        }
    }
}

 

posted @ 2020-05-12 17:45  朱志  阅读(202)  评论(0编辑  收藏  举报