何许人也
Hi,我是百小僧,我又来了。
1993年05月生,双子座,2008年高中接触编程,进入大学后成痴迷状态,于 2012年09月创业至今十年有余,跌跌撞撞还在路上,个人简介不过多阐述,了解更多请移步 【关于作者】
开源十年,坚持每年至少开源一款项目,如今已有30个有余,十年间已是超6万人的群主。开源十年,我都做了啥?
😊 创造了国内超流行的 .NET 框架 Furion:https://gitee.com/dotnetchina/Furion
😊 创造了前端弹窗组件 LayX:https://gitee.com/monksoul/LayX
😊 创办了Gitee 平台超有知名度的 dotNET China 组织:https://gitee.com/dotnetchina
😊 创造了分布式毫秒级定时任务 Sundial:https://gitee.com/dotnetchina/Sundial
😊 创造了分布式事件总线 Jaina:https://gitee.com/dotnetchina/Jaina
😊 .NET 全能 Cron 表达式解析 TimeCrontab 作者:https://gitee.com/dotnetchina/TimeCrontab
😊 曾经风靡一时的 Hui 框架作者:https://gitee.com/monksoul/Hui
😊 曾经被 NodeJS 官方推荐的 Monk.Node 框架作者:https://gitee.com/monksoul/Monk.Node
😊 前端 Javascript 验证库的作者:https://gitee.com/monksoul/availdate.js
由于篇幅优先,就不一一例举,感兴趣的可以去访问我 Gitee 个人主页:https://gitee.com/monksoul
沉默时光
在 .NET 领域,有两个主流的定时任务库,一个是 Quartz.NET,另外一个是 Hangfire,过去十年,所有接手的项目中只要涉及到定时任务就离不开这两个库,也只有这个选择,但它们属于国外大神作品,从功能需求上不能自主可控。
随着编程思维和技术的增长,慢慢有了自主创造的意识,所以于2021年11月就萌生出自己写定时任务的想法,它必须是国人完全自主的分布式毫秒级定时任务,为此我做了长足的准备。
不鸣则已
为了编写无依赖的分布式定时任务,我花费了 9 个月的时间去学习这些知识,见证我创建该库的心路历程:https://gitee.com/dotnetchina/Sundial/issues/I4IL3U
- 必须了解 Cron 表达式所有原理
- 必须了解 多线程、信号量,互斥锁,任务,绿色线程,线程 Token 知识
- 必须了解 TCP/IP 知识,实现集群控制,持久化控制
- 必须了解 CPU 休眠原理,唤醒原理,解决线程如何唤醒,休眠总时间计算
- 必须了解 Hash 表,链表知识,数据结构和算法,解决作业内存存储问题
- 必须了解 队列,管道通讯知识,解决作业运行时状态改变通知问题
- 必须了解 反射知识,IOC/DI 知识,设计模式,架构设计,为以后拓展和维护
- 还有很多很多小知识
一鸣惊人
经过了将近10个月的开发,测试,迭代,Sundial 诞生了,编写了超10万字文档。
https://furion.baiqian.ltd/docs/job
一睹尊容
Sundial
.NET 功能齐全的开源分布式作业调度系统,可从最小的应用程序到大型企业系统使用。
特性
- 简化调度作业
- 支持作业监视器
- 支持作业执行器
- 支持自定义作业存储组件(持久化)
- 支持自定义策略执行
- 内置周期、Cron 作业
- 支持自定义作业触发器
- 支持依赖注入控制(含 HTTP 控制支持)
- 高内聚,低耦合,使代码更简单
- 很小,仅
41KB
- 无第三方依赖
- 可在
Windows/Linux/MacOS
守护进程部署 - 支持分布式、集群(多实例)部署
- 支持负载均衡(基于 TCP/IP)
- 高质量代码和良好单元测试
- 跨平台,支持 .NET5+
安装
快速入门
我们在主页上有不少例子,这是让您入门的第一个:
- 定义作业,并实现
IJob
接口:
- 在
Startup.cs
注册AddSchedule
服务和作业:
- 运行项目:
文档
您可以在主页找到 Sundial 文档。
贡献
该存储库的主要目的是继续发展 Sundial 核心,使其更快、更易于使用。Sundial 的开发在 Gitee 上公开进行,我们感谢社区贡献错误修复和改进。
许可证
Sundial 采用 MIT 开源许可证。
孤芳自赏
纵你阅人何其多,再无一人恰似我。