.netcore 使用Quartz定时任务
这是一个使用 .NET Core 和 Quartz.NET 实现定时任务的完整示例。首先确保已经安装了 .NET Core SDK。接下来按照以下步骤创建一个新的控制台应用程序并设置定时任务:
-
创建一个新的 .NET Core 控制台应用程序:
dotnet new console -n QuartzDemo cd QuartzDemo
-
通过 NuGet 添加 Quartz.NET 包:
dotnet add package Quartz --version 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! 消息。
-
运行应用程序:
dotnet run
-
在控制台中,你将看到每隔 5 秒输出一次 "Hello, world!" 以及当前时间。
通过以上步骤,你已成功创建了一个使用 .NET Core 和 Quartz.NET 实现的定时任务示例。你可以根据需求自定义作业和触发器,实现更复杂的定时任务。