在当今企业级应用开发中,可靠的任务调度系统已成为支撑业务连续性的关键基础设施。今天大姚给大家分享一个基于 .NET 开源、功能齐全的分布式作业调度系统:Sundial。
Sundial 是一个基于 .NET 开源(MIT License)、功能齐全的分布式作业调度系统,它可从最小的应用程序到大型企业系统使用。
首先我们创建一个名为:SundialExercises
.NET 9 控制台应用:
在 NuGet 包管理器中搜索:Sundial
进行安装。
创建自定义任务 CustomJob 并实现 IJob 接口:
public class CustomJob : IJob
{
private readonly ILogger<CustomJob> _logger;
public CustomJob(ILogger<CustomJob> logger)
{
_logger = logger;
}
public Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
_logger.LogInformation(context.ToString());
Console.WriteLine($"[{DateTime.Now:HH:mm:ss}] 任务执行中...");
return Task.CompletedTask;
}
}
在 Program.cs 中注册 Sundial 作业并配置触发器:
// 注册 Sundial 作业
builder.Services.AddSchedule(options =>
{
options.AddJob<CustomJob>(Triggers.PeriodSeconds(10)); // 10s 执行一次
// 使用Cron表达式(每天12点执行)
// options.AddJob<CustomJob>(Triggers.Cron("0 0 12 * * ?"));
});
更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。