.NET Core开源任务调度平台ScheduleMaster上新了
ScheduleMaster上一次比较大的更新还是在6月份,转眼已经快过去4个月了,这段时间比较忙,中间只更新过一次修复了几个小bug。要总结这次更新的话,必须要用“千呼万唤始出来”了,因为这次不仅经历的时间比较久,还带来了大家期待已久的功能-多数据库支持,再就是对.NET Framework的支持。
不熟悉的朋友可以先参考以往的介绍文章:
同时,项目也迎来了一个里程碑,那就是收到了第一个PR,瞬间感觉肩上责任重大[手动狗头]。
先看一下本次的更新点。
V2.2更新日志
- 新增了对SQLServer和PostgreSQL的支持(来自@xueandfeng的PR,非常感谢!)
- 新增了对.NET Standard 2.0的支持
- Worker节点支持配置最大并发数
- HTTP任务支持自定义超时时间
- 修复了已知的bug
新功能可以做什么
项目最初使用的Mysql作为数据持久化方式,从发布开发,就有小伙伴一直问能不能支持其他数据库,因为对.NET平台的开发者来说使用SQLServer还是更多一些。但是那时候更多的考虑到整个项目部署的便捷性和跨平台(docker一条龙服务),而且刚好那段时间沉迷于Mysql,所以毫不犹豫的选择了它。虽然使用EntityFramework这样的ORM作为数据访问框架,但当时迫切的想完成核心功能快速发版,就没有考虑支持多种类型数据库,一直拖到现在。
在这过程中,支持多数据库的需求实在太大,有很多小伙伴自己拉源码改改就用上了,也有热心的小伙伴改完提了PR,不过我由于个人问题还是拖了一段时间到现在才处理。所以,经常用SQLServer或者更喜欢PostgreSQL的朋友有福了,再次感谢@xueandfeng。
另外,项目正式支持.NET Standard 2.0,这意味着项目不仅仅能支持.NET Core程序,同时也能支持.NET Framework(4.6.1及以上)程序了,一张图看个明明白白:

.NET 5马上就要正式发布了,据说.NET Standard就要成为历史,当年费了好大劲才理清楚这几个玩意的关系,转眼说没就没了,我啊一口老血.........吐完继续喊“.NET真香”
以上之外,worker节点可以支持配置最大并发数量了,这是Quartz.Net线程池的一个特性。之前收到锄头哥多次反馈大任务量同时执行时会有丢失的问题#38,多方排查后定位到线程池上。从Quartz.Net 3.0开始,默认线程池(Quartz.Simpl.DefaultThreadPool)开始使用CLR的线程池,但是仍然保留了maxConcurrency这个参数,它的默认值是10。在官网文档可以看到,在大任务量执行频率比较高时,建议调高最大并发量的值:
quartz.threadPool.maxConcurrency
This is the number of concurrent tasks that can be dispatched to CLR thread pool. If you only have a few jobs that fire a few times a day, then 1 tasks is plenty! If you have tens of thousands of jobs, with many firing every minute, then you probably want a max concurrency count more like 50 or 100 (this highly depends on the nature of the work that your jobs perform, and your systems resources!). Also note CLR thread pool configuration separate from Quartz itself.
不过要注意的是,这个值并不严格意味着你最大能执行XX个任务,这取决于你的任务执行情况和系统环境。当你有大量高频率任务时,调高这个参数能明显改善任务丢失情况,ScheduleMaster给它的默认值是20。
我在忙什么
6月底我从广州裸辞,回到武汉开始找工作。作为今年疫情的最中心,武汉受到的影响还是非常大的,很多朋友劝我不要在这个时候换工作,但是由于一些原因我还是坚决地回来了。所以,还是逃不过现实的残酷,工作这么多年来第一次感受到找个靠谱的工作如此困难,当然这也和武汉的.NET大环境有关,前前后后花了好几个月才阴差阳错地来到现在这家公司。
目前从事云计算行业,有太多太多的专业知识要学习,而且还有好几门考证要求,实在应接不暇,初期曾一度想放弃。现在工作中主要的开发语言也转型到了Golang,什么前端后端运维数据库DevOps哪里需要往哪里搬,不断刷新自己的知识盲区。不过.NET还是会继续关注,这个项目还是会继续做下去。
最后,佛系推广一下。
作者唯一开源地址
:
https://gitee.com/hey-hoho/ScheduleMasterCore (只从github同步)
文档(还在逐步更新中):
感谢大家支持~
.NET Core开源任务调度平台ScheduleMaster上新了的更多相关文章
- Asp.Net Core下的开源任务调度平台ScheduleMaster—快速上手
概述 ScheduleMaster是一个开源的分布式任务调度系统,它基于Asp.Net Core平台构建,支持跨平台多节点部署运行. 它的项目主页在这里: https://github.com/hey ...
- Asp.Net Core下的开源任务调度平台ScheduleMaster
从何说起 2017年初的时候,由于当时项目需要做了一个乞丐版定时调度系统,那时候只在单机上实现了核心的调度功能.做这个玩意之前也调研了社区中开源的解决方案,找了几个实地部署试跑了一下,其实都很不错.但 ...
- Apache DolphinScheduler新一代分布式工作流任务调度平台实战-上
概述 定义 dolphinscheduler 官网地址 https://dolphinscheduler.apache.org/ dolphinscheduler GitHub地址 https://g ...
- 开源任务调度平台elastic-job-lite源码解析
前段时间写过一遍文章<一文揭秘定时任务调度框架quartz>,有读者建议我再讲讲elastic-job这个任务调度框架,年末没有那么忙,就来学习一下elastic-job. 首先一点,el ...
- 企业安全建设之搭建开源SIEM平台(上)
前言 SIEM(security information and event management),顾名思义就是针对安全信息和事件的管理系统,针对大多数企业是不便宜的安全系统,本文结合作者的经验介绍 ...
- 2018 dnc 公司案例大全,迎接.NET Core开源新时代
2018 dnc 公司案例大全,迎接.NET Core开源新时代 dnc = .NET Core.dotnet Core dnc是微软新一代主力编程平台,开源.免费.跨平台.轻量级.高性能,支持L ...
- 宜信开源|微服务任务调度平台SIA-TASK入手实践
引言 最近宜信开源微服务任务调度平台SIA-TASK,SIA-TASK属于分布式的任务调度平台,使用起来简单方便,非常容易入手,部署搭建好SIA-TASK任务调度平台之后,编写TASK后配置JOB进行 ...
- 宜信开源微服务任务调度平台(SIA-TASK)
背景 无论是互联网应用或者企业级应用,都充斥着大量的批处理任务.常常需要一些任务调度系统帮助开发者解决问题.随着微服务化架构的逐步演进,单体架构逐渐演变为分布式.微服务架构.在此的背景下,很多原先的任 ...
- 宜信开源|分布式任务调度平台SIA-TASK的架构设计与运行流程
一.分布式任务调度的背景 无论是互联网应用或者企业级应用,都充斥着大量的批处理任务.我们常常需要一些任务调度系统来帮助解决问题.随着微服务化架构的逐步演进,单体架构逐渐演变为分布式.微服务架构.在此背 ...
随机推荐
- [LeetCode] 79. 单词搜索(DFS,回溯)
题目 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相邻或垂直相邻的单元格.同一个单元格 ...
- Docker数据卷Volume实现文件共享、数据迁移备份(三)
数据卷volume功能特性 数据卷 是一个可供一个或多个容器使用的特殊目录,实现让容器中的一个目录和宿主机中的一个文件或者目录进行绑定.数据卷 是被设计用来持久化数据的对于数据卷你可以理解为NFS中的 ...
- kubeadm单集群部署k8s1.15.1&calico网络
说明 本次实验在Windows下的VMware进行 系统配置及初始化配置在所有的主机执行 容器镜像全部替换为国内可拉取的 pod网络采用calico 实验环境 主机名 IP地址 角色 OS CPU/M ...
- zabbbixs数据库常用操作
设置MariaDB数据库远程 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'admin' WITH GRANT OPTION; SEL ...
- SpringBoot中的异步编程
@Async 是什么 void test() { A(); B(); C(); } 复制代码 在没有Async的情况下,上面的方法是顺序执行的,也可以称为同步调用. B要在A执行完毕之后执行,C需要在 ...
- MMC & SD 发展历史
一.概述 MMC 卡和 SD 卡都是基于 Nand Flash 技术的移动存储卡. MMC(MultiMediaCard) 卡于 1997 年由西门子和 Sandisk 推出,SD (Secure D ...
- 使用JWT登录生成token
package com.example.demo.util; import com.auth0.jwt.JWT; import com.auth0.jwt.JWTVerifier; import co ...
- 如何在服务器端使用ASP.NET Core 2 教程
dhtmlxGantt用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表.可满足项目管理应用程序的所有需求,是最完善的甘特图图表库.它允许你创建动态甘特图,并以一个方便的图形化方式可视化项目进度. ...
- newifi3-D2 openwrt挂载u盘扩容/overlay
格式化U盘 1.openwrt安装插件 opkg install fdisk swap-utils kmod-usb-storage kmod-fs-ext4 e2fsprogs kmod-usb-o ...
- 03 以Hello World为例,分析C语言的最小的程序结构
C程序主要包含的部分 预处理器指令 函数 变量 语句 & 表达式 注释 C Hello World 实例 如下程序,可以在屏幕输出短句"Hello World" #incl ...