ASP.NET Core 使用 coravel 建立排程 示範

安裝

先使用 NuGet 安裝 Coravel 套件,或是使用 .NET CLI 執行以下指令安裝
	
dotnet add package coravel
    

在 Program.cs 檔案中使用 AddScheduler 註冊服務:
    
using Coravel;


var builder = WebApplication.CreateBuilder(args);

builder.Services.AddScheduler();

var app = builder.Build();


app.Run();
    

最簡單固定排程

每 10 秒輸出一次訊息:
    
using Coravel;


var builder = WebApplication.CreateBuilder(args);

builder.Services.AddScheduler();

var app = builder.Build();

app.Services.UseScheduler(scheduler =>
{
    scheduler.Schedule(() =>
    {
        Console.WriteLine($"{DateTime.Now:HH:mm:ss}");
    }).EveryTenSeconds();
});



app.Run();
    

透過實作 IInvocable 介面拆分排程任務

建立 MyJob.cs,實作 IInvocable 介面,在 Invoke 方法中撰寫排程任務邏輯:
    
using Coravel.Invocable;


public class MyJob : IInvocable
{
    public Task Invoke()
    {
        Console.WriteLine($"MyJob: {DateTime.Now:HH:mm:ss}");
        return Task.CompletedTask;
    }
}
    

在 Program.cs 中註冊服務和定義排程執行週期:
    
using Coravel;


var builder = WebApplication.CreateBuilder(args);

builder.Services.AddScheduler();
builder.Services.AddTransient<MyJob>();

var app = builder.Build();

app.Services.UseScheduler(scheduler =>
{
    scheduler.Schedule<MyJob>()
        .EverySecond();
});



app.Run();
    



參考資料:
GitHub - jamesmh/coravel
coravel.net

留言