.net core 定时任务
时间: 2023-06-22 18:39:30 浏览: 68
在 .NET Core 中可以使用多种方式来实现定时任务,其中比较常用的是使用 Quartz.NET 和 Hangfire。以下是简单的介绍:
1. Quartz.NET:Quartz.NET 是一个功能强大、开源的定时任务框架,可以支持复杂的调度需求。使用 Quartz.NET 可以通过简单的配置和编程实现定时任务的调度和管理。
2. Hangfire:Hangfire 是一个开源的 .NET 库,可以实现在 ASP.NET 和 .NET Core 应用程序中运行后台任务和定时任务。Hangfire 支持多种存储方式,包括内存、Redis、SQL Server 等,可以非常方便地进行任务调度和管理。
无论使用哪种方式,我们都需要定义任务,例如:
```csharp
public class MyJob
{
public void Run()
{
// 执行具体的业务逻辑
}
}
```
然后根据具体的框架和需求,配置任务调度和管理,例如:
```csharp
// 使用 Quartz.NET
var scheduler = new StdSchedulerFactory().GetScheduler();
var job = JobBuilder.Create<MyJob>().Build();
var trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(10)
.RepeatForever())
.Build();
scheduler.ScheduleJob(job, trigger);
scheduler.Start();
// 使用 Hangfire
RecurringJob.AddOrUpdate<MyJob>("job1", job => job.Run(), Cron.Minutely);
```
其中,Quartz.NET 中的 `Job` 和 `Trigger` 分别表示任务和触发器,Hangfire 中的 `RecurringJob` 表示定时任务。以上只是简单的示例,具体实现还需要根据实际需求进行修改。