会计公司网站源码,阿里云域名注册流程,产品品牌推广策划方案,中国目前最好的搜索引擎从何说起2017年初的时候#xff0c;由于当时项目需要做了一个乞丐版定时调度系统#xff0c;那时候只在单机上实现了核心的调度功能。做这个玩意之前也调研了社区中开源的解决方案#xff0c;找了几个实地部署试跑了一下#xff0c;其实都很不错。但那时候我们有个问题就是… 从何说起2017年初的时候由于当时项目需要做了一个乞丐版定时调度系统那时候只在单机上实现了核心的调度功能。做这个玩意之前也调研了社区中开源的解决方案找了几个实地部署试跑了一下其实都很不错。但那时候我们有个问题就是应用都是基于Azure WebApp去部署不太想为了这个东西搞一台虚拟机来跑windows服务所以最后决定重新开发一个哪怕功能简单点能满足需要就行。很快这个东西就做好了也投入了使用因为是给业务系统定制那里面多少掺杂一些业务上的东西那时候我就有了一个想法把它剥离处理做成一个比较通用的系统打造成自己的开源项目。后来又对它做了一些升级优化支持了多节点运行做了一些界面展示。虽然那时候.Net Core已经出了正式版但由于之前的业务系统还是使用.Net Framework开发调度系统也并没有选择.Net Core。再后来我就定了计划路线一个单机版和一个集群版单机版主要是部署简单但是可用性比较低集群版支持多节点部署可以保障高可用。于是说干就干在工作之余慢慢添砖加瓦找UI搭架子一行行代码开始堆起来又一遍遍重构万事开头难。到年底的时候因为一些原因换工作了接着整个18年都比较(忙)懒基本处于停滞状态没什么产出。一直到2019下半年才下决心出一个版本。这时候恰好碰上.Net Core 3.0发布决定用Core重构一遍也顺便对.Net Core来一次实战于是就有了现在这个版本。持续近4年的Flag终于有了第一个Milestone。传送门https://github.com/hey-hoho/ScheduleMasterCore还有一个原因选择在3.0时重构Framework中使用了AppDomain机制来实现程序集动态管理.Net Core之前的版本没有类似这种功能直到3.0版本才有了AssemblyLoadContext提供这个能力。关于包装当时想把这个项目搞的稍微(有逼格)正式一点让它看起来不那么山寨认认真真想了一个名字最后定为ScheduleMaster。然后又去网上偷了一个icon来自ColinXu 的作品在此感谢用我撇脚的PS功底捣腾几下做了logo也算是正式出道了。后来上GitHub创建了Repository更新了Description和ReadMe添加了License绑定了Azure DevOps让一切看起来都像个正儿八经的开源项目。主要功能简易的Web UI操作任务动态管理:创建、启动、停止、暂停、恢复、删除等高可用支持跨平台多节点部署数据安全性不会出现多实例并发调度支持自定义参数设置支持设置监护人运行异常时邮件告警支持设置任务依赖自动触发共享任务结果插件式开发任务运行环境隔离全链路日志系统运行轨迹轻松掌控用户访问控制提供开放REST API业务系统可以无缝集成调度报表统计关于功能我想说的是我一直提倡专业的工具干专业的活调度器就核心就是做调度应该避免太多的业务操作能够通过远程调用(RPC)实现的业务就不要把一堆dll丢到调度器里去跑。除此之外这套框架用来搭建中小型的web系统也是非常合适的。主要技术Asp.Net Core 3.0、原生DI、EntityFramework Core 3.0、Mysql 5.7、Quartz.Net、BeyondAdmin、Jquery一把梭...没有任何高大上的玩意尽显(低调奢华有内涵)朴实~在这次重构过程中现学现卖写了下面2篇文章从EFCore上下文的使用到深入剖析DI的生命周期最后实现自动属性注入在Asp.Net Core中使用ModelConvention实现全局过滤器隔离以后再慢慢写文章来介绍其他的东西。结构图为了让整体架构有个清晰的展示特意画了下面这个图可以看到也是非常简单虽然很简单但在我接触过Kubernetes后惊人地发现两者还挺相似尽管Kubernetes要比我这个复杂的多。强行抱大腿????????如何使用在GitHub项目主页readme中做了简单描述部署上基本没啥难度更详细的我后面再补文档。怎么接入业务可以参考源码中的Demo项目这里简单描述下。添加引用方式1自行下载源码编译手动添加引用Hos.ScheduleMaster.Base.dll。方式2通过Nuget搜索ScheduleMaster安装。编写业务代码并编译成dll。 public class MyTask : Hos.ScheduleMaster.Base.TaskBase{public override void Run(TaskContext context){context.WriteLog($当前时间是{DateTime.Now});}}上控制台创建一个任务填写好各项参数dll打包上传再启动任务即可。剧照图先就这么多~未来展望还是先立下Flag基于.Net Core的这是一个核心版本后面会一直更新下去今后的开发计划也在主页readme做了描述。至于Framework上的版本后面再说吧如果当前这个石头扔下去能激起一些水花其他版本也一并完善起来。毕竟俗务缠身也并非什么技术大佬编程极客需要时间去干别的事。当然了有bug和优化点大家随时砸过来https://github.com/hey-hoho/ScheduleMasterCore/issues有问题可以加QQ群交流824535095虽然不再迷恋微软但还是希望.net社区越来越好尽微薄之力多参与多贡献