.net core ScheduleJobs
时间: 2024-10-18 21:13:29 浏览: 4
.NET Core 提供了 `Microsoft.Extensions.Hosting` 库,其中包括 `BackgroundService` 和 `IHostedService` 接口,用于管理和调度后台任务。如果你想在 .NET Core 中安排定期执行的工作,你可以这样做:
1. **创建 BackgroundService** 或 `IHostedService` 的实现**: 首先,你需要创建一个继承自 `BackgroundService` 或实现了 `IHostedService` 的类,比如 `MyScheduledJob`。这个类通常包含一个公共方法,它包含了你要执行的具体任务。
```csharp
public class MyScheduledJob : BackgroundService
{
public override async Task StartAsync(CancellationToken cancellationToken)
{
while (!cancellationToken.IsCancellationRequested)
{
await YourTaskToBeScheduled(cancellationToken);
await Task.Delay(TimeSpan.FromSeconds(60), cancellationToken); // 每隔60秒执行一次
}
}
private async Task YourTaskToBeScheduled(CancellationToken cancellationToken)
{
// 这里写你的定时任务代码
}
}
```
2. **注册服务**:在 `Startup.cs` 文件的 `ConfigureServices` 方法中,需要将你的背景服务注册到依赖注入系统中。
```csharp
services.AddHostedServices<MyScheduledJob>();
```
3. **运行服务**:在 `Configure` 方法中,通过 `UseBackgroundTasks` 注册并启用任务运行。
```csharp
app.UseBackgroundTasks();
app.UseConsoleLifetime(); // 如果你是在控制台应用中
```
4. **启动应用程序**:最后,通过调用 `app.Run` 或 `app.StartAsync` 启动应用程序,你的定时任务就会按照配置开始执行。
阅读全文