在 .NET Core 中,我们可以使用 Quartz.NET 来实现定时任务。下面是一个简单的例子:
首先,我们需要通过 NuGet 安装 Quartz.NET:
Install-Package Quartz
1.创建一个 Job 类,该类实现 IJob 接口,并实现 Execute 方法。该方法中编写具体的任务逻辑。
using Quartz;
public class MyJob : IJob
{
public Task Execute(IJobExecutionContext context)
{
// 具体的任务逻辑
Console.WriteLine("Hello, world!");
return Task.CompletedTask;
}
}
2.创建一个 Trigger,该 Trigger 规定了任务的触发方式。例如,我们可以创建一个每分钟执行一次的 Trigger:
using Quartz;
public class MyTrigger
{
public static ITrigger Create()
{
return TriggerBuilder.Create()
.WithIdentity("MyTrigger", "MyGroup")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(60)
.RepeatForever())
.Build();
}
}
3.创建一个 Scheduler,该 Scheduler 负责管理所有的 Job 和 Trigger:
using Quartz;
using Quartz.Impl;
public class MyScheduler
{
public static async Task Start()
{
// 创建 SchedulerFactory
var schedulerFactory = new StdSchedulerFactory();
// 创建 Scheduler
var scheduler = await schedulerFactory.GetScheduler();
// 创建 JobDetail
var jobDetail = JobBuilder.Create<MyJob>()
.WithIdentity("MyJob", "MyGroup")
.Build();
// 创建 Trigger
var trigger = MyTrigger.Create();
// 将 JobDetail 和 Trigger 绑定到 Scheduler
await scheduler.ScheduleJob(jobDetail, trigger);
// 启动 Scheduler
await scheduler.Start();
}
}
最后,在应用程序启动时调用 MyScheduler.Start 方法启动定时任务即可:
public class Program
{
public static async Task Main(string[] args)
{
await MyScheduler.Start();
// 防止应用程序退出
await Task.Delay(-1);
}
}
这样,我们就创建了一个每分钟执行一次的定时任务。可以根据需要修改 Trigger 中的参数来满足不同的需求。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!