Sundial.NET分布式作業(yè)調(diào)度系統(tǒng)
Sundial
.NET 功能齊全的開源分布式作業(yè)調(diào)度系統(tǒng),可從最小的應(yīng)用程序到大型企業(yè)系統(tǒng)使用。
特性
- 簡化調(diào)度作業(yè)
- 支持作業(yè)監(jiān)視器
- 支持作業(yè)執(zhí)行器
- 支持自定義作業(yè)存儲(chǔ)組件(持久化)
- 支持自定義策略執(zhí)行
- 內(nèi)置周期、Cron 作業(yè)
- 支持自定義作業(yè)觸發(fā)器
- 支持依賴注入控制(含 HTTP 控制支持)
- 高內(nèi)聚,低耦合,使代碼更簡單
- 很小,僅
41KB - 無第三方依賴
- 可在
Windows/Linux/MacOS守護(hù)進(jìn)程部署 - 支持分布式、集群(多實(shí)例)部署
- 支持負(fù)載均衡(基于 TCP/IP)
- 高質(zhì)量代碼和良好單元測試
- 跨平臺(tái),支持 .NET5+
安裝
Install-Package Sundial
dotnet add package Sundial
快速入門
我們在主頁上有不少例子,這是讓您入門的第一個(gè):
- 定義作業(yè),并實(shí)現(xiàn)
IJob接口:
public class MyJob : IJob { private readonly ILogger<MyJob> _logger; public MyJob(ILogger<MyJob> logger) { _logger = logger; } public Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken) { _logger.LogInformation($"{context}"); return Task.CompletedTask; } }
- 在
Startup.cs注冊AddSchedule服務(wù)和作業(yè):
services.AddSchedule(options => { options.AddJob<MyJob>(Triggers.PeriodSeconds(5)); });
- 運(yùn)行項(xiàng)目:
info: 2022-12-05 19:32:56.3835407 +08:00 星期一 L System.Logging.ScheduleService[0] #1 Schedule hosted service is running. info: 2022-12-05 19:32:56.3913451 +08:00 星期一 L System.Logging.ScheduleService[0] #1 Schedule hosted service is preloading... info: 2022-12-05 19:32:56.4322887 +08:00 星期一 L System.Logging.ScheduleService[0] #1 The <job1_trigger1> trigger for scheduler of <job1> successfully appended to the schedule. info: 2022-12-05 19:32:56.4347959 +08:00 星期一 L System.Logging.ScheduleService[0] #1 The scheduler of <job1> successfully appended to the schedule. warn: 2022-12-05 19:32:56.4504555 +08:00 星期一 L System.Logging.ScheduleService[0] #1 Schedule hosted service preload completed, and a total of <1> schedulers are appended. info: 2022-12-05 19:33:01.5100177 +08:00 星期一 L MyJob[0] #13 <job1> [C] <job1 job1_trigger1> 5s 1ts 2022-12-05 19:33:01.395 -> 2022-12-05 19:33:06.428 info: 2022-12-05 19:33:06.4676792 +08:00 星期一 L MyJob[0] #13 <job1> [C] <job1 job1_trigger1> 5s 2ts 2022-12-05 19:33:06.428 -> 2022-12-05 19:33:11.435 info: 2022-12-05 19:33:11.4460946 +08:00 星期一 L MyJob[0] #16 <job1> [C] <job1 job1_trigger1> 5s 3ts 2022-12-05 19:33:11.435 -> 2022-12-05 19:33:16.412
JobExecutionContext 重寫了 ToString() 方法并提供以下幾種格式:
# 持續(xù)運(yùn)行格式 <作業(yè)Id> 作業(yè)描述 [并行C/串行S] <作業(yè)Id 觸發(fā)器Id> 觸發(fā)器字符串 觸發(fā)器描述 觸發(fā)次數(shù)ts 觸發(fā)時(shí)間 -> 下一次觸發(fā)時(shí)間 # 觸發(fā)停止格式 <作業(yè)Id> 作業(yè)描述 [并行C/串行S] <作業(yè)Id 觸發(fā)器Id> 觸發(fā)器字符串 觸發(fā)器描述 觸發(fā)次數(shù)ts 觸發(fā)時(shí)間 [觸發(fā)器終止?fàn)顟B(tài)]
文檔
您可以在主頁找到 Sundial 文檔。
貢獻(xiàn)
該存儲(chǔ)庫的主要目的是繼續(xù)發(fā)展 Sundial 核心,使其更快、更易于使用。Sundial 的開發(fā)在 Gitee 上公開進(jìn)行,我們感謝社區(qū)貢獻(xiàn)錯(cuò)誤修復(fù)和改進(jìn)。
許可證
Sundial 采用 MIT 開源許可證。
MIT License Copyright (c) 2020-2022 百小僧, Baiqian Co.,Ltd. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
評(píng)論
圖片
表情
