Sundial.NET 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Sundial.NET 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Sundial.NET 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 MIT
开发语言 C# 查看源码 »
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 百小僧
适用人群 未知
收录时间 2022-11-24

软件简介

Sundial

license nuget dotNET China

.NET 功能齐全的开源分布式作业调度系统,可从最小的应用程序到大型企业系统使用。

Sundial.drawio

特性

  • 简化调度作业
    • 支持作业监视器
    • 支持作业执行器
    • 支持自定义作业存储组件(持久化)
    • 支持自定义策略执行
    • 内置周期、Cron 作业
    • 支持自定义作业触发器
    • 支持依赖注入控制(含 HTTP 控制支持)
  • 高内聚,低耦合,使代码更简单
  • 很小,仅 41KB
  • 无第三方依赖
  • 可在 Windows/Linux/MacOS 守护进程部署
  • 支持分布式、集群(多实例)部署
  • 支持负载均衡(基于 TCP/IP)
  • 高质量代码和良好单元测试
  • 跨平台,支持 .NET5+

安装

Install-Package Sundial
dotnet add package Sundial

快速入门

我们在主页上有不少例子,这是让您入门的第一个:

  1. 定义作业,并实现 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;
    }
}
  1.  Startup.cs 注册 AddSchedule 服务和作业:
services.AddSchedule(options =>
{
    options.AddJob<MyJob>(Triggers.PeriodSeconds(5));
});
  1. 运行项目:
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() 方法并提供以下几种格式:

# 持续运行格式
<作业Id> 作业描述 [并行C/串行S] <作业Id 触发器Id> 触发器字符串 触发器描述 触发次数ts 触发时间 -> 下一次触发时间

# 触发停止格式
<作业Id> 作业描述 [并行C/串行S] <作业Id 触发器Id> 触发器字符串 触发器描述 触发次数ts 触发时间 [触发器终止状态]

更多文档

文档

您可以在主页找到 Sundial 文档。

贡献

该存储库的主要目的是继续发展 Sundial 核心,使其更快、更易于使用。Sundial 的开发在 Gitee 上公开进行,我们感谢社区贡献错误修复和改进。

许可证

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.
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
发表了资讯
04/22 11:20

.NET 分布式调度作业 Sundial v2.10 发布

Sundial .NET 功能齐全的开源分布式作业调度系统,可从最小的应用程序到大型企业系统使用。 特性 简化调度作业 支持作业监视器 支持作业执行器 支持自定义作业存储组件(持久化) 支持自定义策略执行 内置周期、Cron 作业 支持自定义作业触发器 支持依赖注入控制(含 HTTP 控制支持) 高内聚,低耦合,使代码更简单 很小,仅 41KB 无第三方依赖,TimeCrontab 也是本人作品 可在 Windows/Linux/MacOS 守护进程部署 支持分布式、集...

0
4
发表了资讯
03/13 16:05

.NET 分布式任务调度 Sundial v2.8.5 发布,包含诸多改进

Sundial .NET 功能齐全的开源分布式作业调度系统,可从最小的应用程序到大型企业系统使用。 特性 简化调度作业 支持作业监视器 支持作业执行器 支持自定义作业存储组件(持久化) 支持自定义策略执行 内置周期、Cron 作业 支持自定义作业触发器 支持依赖注入控制(含 HTTP 控制支持) 高内聚,低耦合,使代码更简单 很小,仅 41KB 无第三方依赖,TimeCrontab 也是本人作品 可在 Windows/Linux/MacOS 守护进程部署 支持分布式、集...

0
0
发表了资讯
01/03 13:09

.NET 分布式定时任务 Sundial 推出 Dashboard 看板啦,v2.6.0 发布

Sundial .NET 功能齐全的开源分布式作业调度系统,可从最小的应用程序到大型企业系统使用。 特性 简化调度作业 支持作业监视器 支持作业执行器 支持自定义作业存储组件(持久化) 支持自定义策略执行 内置周期、Cron 作业 支持自定义作业触发器 支持依赖注入控制(含 HTTP 控制支持) 高内聚,低耦合,使代码更简单 很小,仅 41KB 无第三方依赖 可在 Windows/Linux/MacOS 守护进程部署 支持分布式、集群(多实例)部署 支持负载...

0
2
发表了资讯
2022/12/29 10:07

.NET 功能齐全的分布式作业调度 Sundial v2.5.8 发布

经过十个多月的开发迭代,Sundial 已经相当成熟稳定,过去公司 ERP 产品中使用 Quartz.NET 编写的定时任务也已全部替换成了 Sundial,并稳定运行了 10个多月。 使用场景 定时任务的应用场景非常广,几乎是每一个软件系统必备功能: 叫你起床的闹钟 日历日程提醒 生日纪念日提醒 定时备份数据库 定时清理垃圾数据 定时发送营销信息,邮件 定时上线产品,比如预售产品,双十一活动 定时发送优惠券 定时发布,实现 Devops 功能,如...

2
2
发表了资讯
2022/12/06 16:54

这个 .NET 分布式定时任务有点强,Sundial v2.5.0 发布

痛并快乐 自上一次 Sundial 发布已过 12 天,借助 Furion 框架的人气,Sundial 在 Nuget 平台下载量达到了 1900+ 次,随着越来越多的开发者使用,也暴露出了之前架构设计一些不灵活的问题,收集到了不少建议和问题反馈。 这一次不再是独自一人,为了尽快优化架构和功能改进,拉了4个小伙伴一起对所有代码、注释、文档进行了完整性审查工作,历尽5天的时间,终于解决了现有的所有问题还添加了不少新特性。 这十多天被各种问题搞得...

2
4
发表了资讯
2022/11/24 17:02

又见百小僧,.NET 分布式毫秒级定时任务 Sundial 面世 🎉

何许人也 Hi,我是百小僧,我又来了。 1993年05月生,双子座,2008年高中接触编程,进入大学后成痴迷状态,于 2012年09月创业至今十年有余,跌跌撞撞还在路上,个人简介不过多阐述,了解更多请移步 【关于作者】 开源十年,坚持每年至少开源一款项目,如今已有30个有余,十年间已是超6万人的群主。开源十年,我都做了啥? 😊 创造了国内超流行的 .NET 框架 Furion:https://gitee.com/dotnetchina/Furion 😊 创造了前...

50
25
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
9 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部