您现在的位置是:首页 > 文章详情

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

日期:2022-12-29点击:331

经过十个多月的开发迭代,Sundial 已经相当成熟稳定,过去公司 ERP 产品中使用 Quartz.NET 编写的定时任务也已全部替换成了 Sundial,并稳定运行了 10个多月

使用场景

定时任务的应用场景非常广,几乎是每一个软件系统必备功能:

  • 叫你起床的闹钟
  • 日历日程提醒
  • 生日纪念日提醒
  • 定时备份数据库
  • 定时清理垃圾数据
  • 定时发送营销信息,邮件
  • 定时上线产品,比如预售产品,双十一活动
  • 定时发送优惠券
  • 定时发布,实现 Devops 功能,如 Jenkins
  • 定时爬虫抓数据
  • 定时导出报表,历史统计,考勤统计
  • ...

项目特色

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

项目信息

文档预览

Admin.NET 集成

.NET 非常火的 Admin.NET 开源项目项目第一时间集成了最新版的分布式定时任务。

TimeCrontab

为了开发这个分布式定时任务,本人还开源了 Cron 表达式解析库 TimeCrontab,一个支持 Cron 表达式完整解析的 .NET 跨平台库。

TimeCrontab.drawio

 本期更新

  • 新特性

    • [新增] 定时任务配置选项 options.JobDetail.LogEnabled 配置,可自动输出执行日志 4.8.3.7 ⏱️2022.12.14 58d2c20
    • [新增] 定时任务 IScheduler 对象每次操作后自动刷新和提供手动刷新 Reload() 方法 4.8.3.3 ⏱️2022.12.09 #I65EQ1
    • [新增] 定时任务间隔分钟作业触发器 Triggers.PeriodMinutes(5)[PeriodMinutes(5)] 特性 4.8.2.8 ⏱️2022.12.01 8e1f06f
    • [新增] 定时任务工作日作业触发器 Triggers.Workday()[Workday] 特性 4.8.2.6 ⏱️2022.11.30 28b2d20
    • [新增] 定时任务作业校对功能,可对误差进行校正 4.8.2.6 ⏱️2022.11.30 f725a25
    • [新增] 定时任务 Triggers 所有带 AtCron 表达式触发器构建器及特性 4.8.2.5 ⏱️2022.11.29 #I63PLR
    • [新增] 定时任务批量添加 SchedulerBuilder 作业功能 4.8.2.4 ⏱️2022.11.29 5faa67b
    • [新增] 定时任务 BuildSqlType 配置,可设置生成不同数据库类型的 SQL 语句 4.8.2.3 ⏱️2022.11.29 293f9bc !675
    • [新增] JobDetailTrigger 自定义 ConvertToSQL 输出 SQL 配置 4.8.2 ⏱️2022.11.27 0bb9d8f
    • [新增] 作业触发器 ResetOnlyOnce 属性,支持只运行一次的作业重新启动服务重复执行 4.8.1.5 ⏱️2022.11.25 a8be728
    • [新增] 动态作业处理程序委托支持 4.8.1.8 ⏱️2022.11.27 e02266c
  • 突破性变化

    • [调整] 定时任务底层所有代码,日志,注释,文档 4.8.1.10 ⏱️2022.12.05
  • 问题修复

    • [修复] 定时任务通过 scheduler.RemoveTrigger(triggerId) 报异常问题 4.8.3.3 ⏱️2022.12.09 #I65EQ1
    • [修复] 定时任务作业触发器配置了 EndTimeStartTime 之后 Status 没有对应上 4.8.3.1 ⏱️2022.12.09 52a5506
    • [修复] 定时任务通过 scheduler.AddTrigger(triggerBuilder) 无效的问题 4.8.3.1 ⏱️2022.12.09 #I65EQ1
    • [修复] 作业拥有多个触发器时暂停作业后依然存在个别未暂停的清空(并发问题) 4.8.2.12 ⏱️2022.12.07 #I655W9
    • [修复] 作业触发器不符合下一次执行规律但 NextRunTime 不为 null 情况 4.8.1.5 ⏱️2022.11.25 a8be728
    • [修复] 运行时启动/暂停作业无效问题 4.8.1.6 ⏱️2022.11.25 #I6368M
    • [修复] 定时任务生成的 SQL 语句不支持 MySQL 问题 4.8.1.7 ⏱️2022.11.26 #I638ZC
  • 其他更改

    • [调整] 定时任务调度器时间精度,控制持续执行一年误差在 100ms 以内 4.8.2.9 ⏱️2022.12.01 334d089
    • [调整] 定时任务作业计划工厂 GetNextRunJobs() 方法逻辑 4.8.2.7 ⏱️2022.11.30 #I63VS2
  • 文档

    • [新增] 作业执行器实现超时文档 4.8.3.8 ⏱️2022.12.20
    • [新增] 作业触发器 ResetOnlyOnce 文档 4.8.1.5 ⏱️2022.11.25 a8be728
    • [新增] 通过 Roslyn 动态编译代码创建 IJob 类型文档 4.8.1.5 ⏱️2022.11.25 2c5e5be
    • [新增] 自定义 JobDetailTrigger 输出 SQL 文档 4.8.2 ⏱️2022.11.27 0bb9d8f
原文链接:https://www.oschina.net/news/223037/sundial-2-5-8-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章