c#简单使用quartz做任务调度

  1. 第一步安装Quartz包 (nuget包)


需要注意quartz与当前项目其他包的兼容性,本次博客用了当前最新的3.3.2版本

2.实现一个简单例子(每五秒打印一次当前时间)

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

namespace testQuartz
{
    class Program
    {
        static void Main(string[] args)
        {
            RunQuartz(); //该方法简单实现每五秒打印一次时间,可用作轮询数据(该方法只针对于新手)
            Console.ReadKey();
        }
        private static async void RunQuartz()
        {
            NameValueCollection props = new NameValueCollection
            {
                {"quartz.serializer.type","binary" }
            };
            StdSchedulerFactory factory = new StdSchedulerFactory(props);
            IScheduler scheduler = await factory.GetScheduler();
            await scheduler.Start();
            //设置一个触发器(板机)
            ITrigger trigger = TriggerBuilder.Create()
                .WithIdentity("quartzName", "quartzGroup") //作业名称  作业组
                .StartNow() //立即生效
                //.startAt(startDate) //设置开始时间
                //.endAt(endDate)//设置结束时间
                .WithSimpleSchedule(x => x
                .WithIntervalInSeconds(5) //每次间隔五秒执行一次
                .RepeatForever()) //永不停止
                .Build();
            await scheduler.ScheduleJob(JobBuilder.Create<TestTimerClass>()
                .WithIdentity("quartzName", "quartzGroup") //板机名称  板机组
                .Build(), trigger);

        }
        public class TestTimerClass : IJob
        {
            
            public Task Execute(IJobExecutionContext context)
            {
                string nowTime = DateTime.Now.ToString("yyyy年MM月dd HH时mm分ss秒");
                Console.WriteLine(nowTime);//打印当前时间
                return Task.CompletedTask;
            }
        }
        
        
    }
}

3.执行时间正则表(只有部分)
c#简单使用quartz做任务调度_第1张图片

本次博客只针对于首次使用c#用quartz做任务调度的,如果有问题可以私信我

你可能感兴趣的:(问题心得,基本操作,quartz,c#,后端)