.netcore 使用Quartz定时任务

这是一个使用 .NET Core 和 Quartz.NET 实现定时任务的完整示例。首先确保已经安装了 .NET Core SDK。接下来按照以下步骤创建一个新的控制台应用程序并设置定时任务:

  1. 创建一个新的 .NET Core 控制台应用程序:

    dotnet new console -n QuartzDemo
    cd QuartzDemo
    
  2. 通过 NuGet 添加 Quartz.NET 包:

    dotnet add package Quartz --version 3.3.3
    
  3. 打开 Program.cs 文件并替换其内容:

    using System;
    using System.Threading.Tasks;
    using Quartz;
    using Quartz.Impl;
    
    namespace QuartzDemo
    {
        public class HelloWorldJob : IJob
        {
            public Task Execute(IJobExecutionContext context)
            {
                Console.WriteLine("Hello, world! " + DateTime.Now);
                
    			return Task.CompletedTask;
               }
           }
      class Program
       {
           static async Task Main(string[] args)
           {
               // 创建调度器
               StdSchedulerFactory factory = new StdSchedulerFactory();
               IScheduler scheduler = await factory.GetScheduler();
    
               // 启动调度器
               await scheduler.Start();
    
               // 创建一个作业
               IJobDetail job = JobBuilder.Create<HelloWorldJob>()
                   .WithIdentity("helloWorldJob", "group1")
                   .Build();
    
               // 创建一个触发器
               ITrigger trigger = TriggerBuilder.Create()
               .WithIdentity("helloWorldTrigger", "group1")
                       .StartNow()
                       .WithSimpleSchedule(x => x
                           .WithIntervalInSeconds(5)
                           .RepeatForever())
                       .Build();
               // 将作业和触发器添加到调度器
               await scheduler.ScheduleJob(job, trigger);
    
               // 等待用户按键以关闭
               Console.WriteLine("Press any key to close the application...");
               Console.ReadKey();
    
               // 关闭调度器
               await scheduler.Shutdown();
           }
       }
    }
              
    

    该示例创建了一个名为 HelloWorldJob 的作业,每隔 5 秒执行一次。作业的内容仅输出当前时间的 Hello, world! 消息。

  4. 运行应用程序:

    dotnet run

  5. 在控制台中,你将看到每隔 5 秒输出一次 "Hello, world!" 以及当前时间。

通过以上步骤,你已成功创建了一个使用 .NET Core 和 Quartz.NET 实现的定时任务示例。你可以根据需求自定义作业和触发器,实现更复杂的定时任务。

posted @ 2023-04-28 08:18  GroundSoft  阅读(832)  评论(0编辑  收藏  举报