找回密码
 立即注册
首页 业界区 业界 基于 .NET 开源、功能齐全的分布式作业调度系统 ...

基于 .NET 开源、功能齐全的分布式作业调度系统

肿抢 2025-8-10 03:08:15
前言

在当今企业级应用开发中,可靠的任务调度系统已成为支撑业务连续性的关键基础设施。今天大姚给大家分享一个基于 .NET 开源、功能齐全的分布式作业调度系统:Sundial。
系统介绍

Sundial 是一个基于 .NET 开源(MIT License)、功能齐全的分布式作业调度系统,它可从最小的应用程序到大型企业系统使用。
1.png

 
创建 .NET 9 Web API

首先我们创建一个名为:SundialExercises .NET 9 控制台应用:
2.png

3.png

4.png

引入 Sundial NuGet 包

在 NuGet 包管理器中搜索:Sundial 进行安装。
 
5.png

 
自定义任务

创建自定义任务 CustomJob 并实现 IJob 接口:
  1.     public class CustomJob : IJob
  2.     {
  3.         private readonly ILogger<CustomJob> _logger;
  4.         public CustomJob(ILogger<CustomJob> logger)
  5.         {
  6.             _logger = logger;
  7.         }
  8.         public Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
  9.         {
  10.             _logger.LogInformation(context.ToString());
  11.             Console.WriteLine($"[{DateTime.Now:HH:mm:ss}] 任务执行中...");
  12.             return Task.CompletedTask;
  13.         }
  14.     }
复制代码
注册 Sundial 作业并配置触发器

在 Program.cs 中注册 Sundial 作业并配置触发器:
  1.             // 注册 Sundial 作业并配置触发器
  2.             builder.Services.AddSchedule(options =>
  3.             {
  4.                 // 添加自定义任务(每5秒执行)
  5.                 //options.AddJob<CustomJob>(Triggers.PeriodSeconds(5));
  6.                 // 添加自定义任务(每10秒执行)
  7.                 options.AddJob<CustomJob>(Triggers.PeriodSeconds(10));
  8.                 //.NET Cron 表达式解析库 TimeCrontab:https://gitee.com/dotnetchina/TimeCrontab
  9.                 //var crontab = Crontab.DailyAt(3); // 每天第 3 小时正(点)
  10.                 //var crontab = Crontab.WeeklyAt("WED");  // SUN(星期天),MON,TUE,WED,THU,FRI,SAT
  11.                 //var crontab = Crontab.YearlyAt(3); // 每年第 3,5,6 月 1 日零点正
  12.                 //options.AddJob<CustomJob>(Triggers.Cron(crontab.ToString()));
  13.             });
复制代码
6.png

项目源码地址


更多项目实用功能和特性欢迎前往项目开源地址查看
来源:豆瓜网用户自行投稿发布,如果侵权,请联系站长删除

相关推荐

您需要登录后才可以回帖 登录 | 立即注册