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

2022-12-29 0 476

原副标题:又见百小僧,.NET分布式系统微秒级间歇各项任务Sundial问世

译者 | 百小僧

珍眼

Hi,我是百小僧,我又来了。

1993 年 05 月生,天秤座,2008 年初中接触程式设计,步入理工学院后成著迷状况,于 2012 年 09 月创业者迄今二十年如一,漫无目的还在马路上,李神符但是多阐释,介绍更多请点选 【有关译者:https://furion.baiqian.ltd/docs/author

开放源码二十年,秉持每月最少开放源码这款工程项目,现如今已近 30 个如一,二近两年已是超 6 万人的hondayz。 开放源码二十年,我都做了啥?

😊 缔造了亚洲地区超盛行的 .NET 架构 Furion:https://gitee.com/dotnetchina/Furion

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

😊 缔造了后端快捷方式模块 LayX:https://gitee.com/monksoul/LayX

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

😊 创立了 Gitee 网络平台不只名气的 dotNET China 组织机构:https://gitee.com/dotnetchina

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

😊 缔造了分布式系统微秒级间歇各项任务 Sundial:https://gitee.com/dotnetchina/Sundial

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

😊 缔造了分布式系统事件总线 Jaina:https://gitee.com/dotnetchina/Jaina

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

😊 .NET 全能 Cron 表达式解析 TimeCrontab 译者:https://gitee.com/dotnetchina/TimeCrontab

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

😊 曾经风靡一时的 Hui 架构译者:https://gitee.com/monksoul/Hui

😊 曾经被 NodeJS 官方推荐的 Monk.Node 架构译者:https://gitee.com/monksoul/Monk.Node

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

😊 后端 Java 验证库的译者:https://gitee.com/monksoul/availdate.js

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

由于篇幅优先,就不一一例举,感兴趣的可以去访问我 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

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

一睹尊容SundiallicenseMIT:https://gitee.com/dotnetchina/Sundial/blob/master/LICENSE

nugetv2.5.0:https://www.nuget.org/packages/Sundial

dotNET China:https://gitee.com/dotnetchina

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

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

特性

简化调度作业

支持作业监视器

支持作业执行器

支持自定义作业存储模块(持久化)

支持自定义策略执行

内置周期、Cron 作业

支持自定义作业触发器

支持依赖注入控制(含 HTTP 控制支持)

高内聚,低耦合,使代码更简单

很小,仅 41KB

无第三方依赖

可在 Windows/Linux/MacOS守护进程部署

支持分布式、集群(多实例)部署

支持负载均衡(基于 TCP/IP)

高质量代码和良好单元测试

跨网络平台,支持 .NET5+

安装

Package Manager

InstallPackageSundial .NET CLIdotnetaddpackageSundial

快速入门

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

定义作业,并实现 IJob 接口: publicclassMyJob:IJob

{

privatereadonlyILogger<MyJob>_logger;

publicMyJob( ILogger<MyJob>logger)

{

_logger=logger;

}

publicasyncTaskExecuteAsync( JobExecutingContextcontext,CancellationTokenstoppingToken)

{

_logger.LogInformation($”{context.JobDetail}{context.Trigger}{context.OccurrenceTime});

awaitTask.CompletedTask;

}

}

在 Startup.cs 注册 AddSchedule 服务和作业:services.AddSchedule( options=>

{

options.AddJob<MyJob>(Triggers.PeriodSeconds(5)

,Triggers.Minutely);

});

运行工程项目: info:System.Logging.ScheduleService[0]

ScheduleHostedServiceisrunning.

warn:System.Logging.ScheduleService[0]

ScheduleHostedServicecancelshibernationandGC.Collect.

info:System.Logging.ScheduleService[0]

TheSchedulerof<job1>successfullyupdatedtotheschedule.

info:Sundial.Samples.MyJob[0]

<job1><job1job1_trigger2>5000ms2022/11/2316:22:51

info:Sundial.Samples.MyJob[0]

<job1><job1job1_trigger2>5000ms2022/11/2316:22:56

info:Sundial.Samples.MyJob[0]

<job1><job1job1_trigger3>*****2022/11/2316:23:00

info:Sundial.Samples.MyJob[0]

<job1><job1job1_trigger2>5000ms2022/11/2316:23:01

info:Sundial.Samples.MyJob[0]

<job1><job1job1_trigger2>5000ms2022/11/2316:23:07

更多文档: https://furion.baiqian.ltd/docs/job/

文档

您可以在主页找到Sundial文档: https://furion.baiqian.ltd/docs/job/

贡献

该存储库的主要目的是继续发展 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/ orsell

copies ofthe Software, andtopermit persons towhom the Software is

furnished todoso, subject tothefollowingconditions:

The above copyright noticeandthis permission noticeshall be included inall

copies orsubstantial portionsofthe Software.

THE SOFTWARE ISPROVIDED “AS IS”, WITHOUTWARRANTY OFANYKIND, EXPRESS OR

IMPLIED,INCLUDINGBUT NOTLIMITED TOTHE WARRANTIES OFMERCHANTABILITY,

FITNESS FORA PARTICULAR PURPOSE ANDNONINFRINGEMENT.INNOEVENTSHALL THE

AUTHORSORCOPYRIGHT HOLDERS BE LIABLE FORANYCLAIM, DAMAGES OROTHER

LIABILITY, WHETHERINAN ACTIONOFCONTRACT, TORT OROTHERWISE, ARISING FROM,

OUTOFORINCONNECTIONWITHTHE SOFTWARE ORTHEUSEOROTHER DEALINGS INTHE

SOFTWARE.

孤芳自赏

纵你阅人何其多,再无一人恰似我。

你参与开放源码吗?

抽开放源码中国周边啦~

Forest + IDEA = 双倍快乐! ForestX 隆重登场 整活大师ChatGPT:实现程式设计语言、构建虚拟机……AWS:.NET开放源码资金严重不足,但我会出手

这里有最新开放源码资讯、软件更新、技术干货等内容

点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦~返回搜

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务