1:首先创建一个控制台应用

代码地址:Quartz代码

2:添加Quartz的NuGet包

 

 

3:创建ConsoleLogProvider和HelloJob类

ConsoleLogProvider:
public class ConsoleLogProvider : ILogProvider
    {
        public Logger GetLogger(string name)
        {
            return (level, func, exception, parameters) =>
            {
                if (level >= LogLevel.Info && func != null)
                {
                    Console.WriteLine("[" + DateTime.Now.ToLongTimeString() + "] [" + level + "] " + func(), parameters);
                }
                return true;
            };
        }

        public IDisposable OpenNestedContext(string message)
        {
            throw new NotImplementedException();
        }

        public IDisposable OpenMappedContext(string key, object value, bool destructure = false)
        {
            throw new NotImplementedException();
        }

 

HelloJob:
public class HelloJob : IJob
    {
        public async Task Execute(IJobExecutionContext context)
        {
            shixian();
        }

        public async void shixian()
        {
            await Console.Out.WriteLineAsync("实现时间" + DateTime.Now);
            await Console.Out.WriteLineAsync("--------------------------");
            await Console.Out.WriteLineAsync();
        }
    }

4:在Program里面添加代码

// 从Factory获取Scheduler实例
LogProvider.SetCurrentLogProvider(new ConsoleLogProvider());
StdSchedulerFactory factory = new();
// 从Factory获取Scheduler实例
IScheduler scheduler = await factory.GetScheduler();
Console.WriteLine("下面开始自动化实现代码");
// 开始执行
await scheduler.Start();
//定义job并将其绑定到我们的HelloJob类TJobDetail iob= JobBuilder.CreatesHelloJob>()
//JOB1是定时器的名称  group1是分组
IJobDetail job = JobBuilder.Create<HelloJob>().WithIdentity("任务1", "集合1").Build();
// 现在触发作业运行,然后每3秒重复执行一次HelloJob的Execute方法
ITrigger trigger = TriggerBuilder.Create().WithIdentity("触发器1", "集合1")
    .StartNow().WithSimpleSchedule(x =>
    x.WithIntervalInSeconds(3).RepeatForever()).Build();
// 使用触发器调度任务
await scheduler.ScheduleJob(job, trigger);
// 睡眠来显示正在发生的事情
await Task.Delay(TimeSpan.FromSeconds(900));
//关机
await scheduler.Shutdown();
Console.WriteLine("按任意键退出");
Console.ReadKey();

5:启动调试

代码实现效果

 

 

 

 

 

 

posted on 2022-03-31 10:09  Sleepy-Person  阅读(27)  评论(0)    收藏  举报