![schedulemaster](https://i.loli.net/2020/11/23/o34pijrvENnexkl.png)
ScheduleMaster是一个开源的分布式任务调度系统,它基于.NET Core 3.1平台构建,支持跨平台多节点部署运行。
[![Build Status](https://dev.azure.com/591310381/ScheduleMasterCore/_apis/build/status/ScheduleMasterCore?branchName=master)](https://dev.azure.com/591310381/ScheduleMasterCore/_build/latest?definitionId=4&branchName=master)
![Nuget](https://img.shields.io/nuget/dt/ScheduleMaster)
![PowerShell Gallery](https://img.shields.io/powershellgallery/p/DNS.1.1.1.1)
![GitHub last commit](https://img.shields.io/github/last-commit/hey-hoho/ScheduleMasterCore)
![.NET Core](https://github.com/hey-hoho/ScheduleMasterCore/workflows/.NET%20Core/badge.svg)
## 主要特性
- [x] 简易的Web UI操作;
- [x] 任务动态管理:创建、启动、停止、暂停、恢复、删除等;
- [x] 高可用支持,跨平台多节点部署。
- [x] 数据安全性,不会出现多实例并发调度。
- [x] 支持自定义参数设置;
- [x] 支持.NET Core和.NET Framework(4.6.1+);
- [x] 支持自定义配置文件和热更新;
- [x] 支持设置监护人,运行异常时邮件告警;
- [x] 支持设置任务依赖,自动触发,共享任务结果;
- [x] 插件式开发,任务运行环境隔离;
- [x] 全链路日志系统,运行轨迹轻松掌控;
- [x] 用户访问控制;
- [x] 提供开放REST API,业务系统可以无缝集成;
- [x] 调度报表统计;
- [ ] 任务分组管理;
- [ ] 计划表拆分实现复用;
- [x] 指定节点运行;
- [x] 支持http任务配置;
- [x] 支持延时任务;
- [ ] 任务监控;
- [ ] 资源监控;
- [x] 支持异常策略配置(失败重试、超时控制等);
- [ ] 接入redis缓存;
- [x] 多数据库类型支持;
- [ ] 用户权限更加精细化;
- [ ] 报表统计完善;
<br />
## 技术栈
ASP.NET Core3.1、EntityFramework Core3.0、Mysql5.7、Quartz.Net、BeyondAdmin、Jquery...
<br />
## 系统架构图
![architecture.png](https://i.loli.net/2020/11/23/z2Tglw4EBxNhp3I.png)
## 如何使用
> 使用前请准备好所需环境:`Visual Studio 2019`、`.NET Core3.1 SDK`、`Mysql 5.7(可选)`、`SQLServer(可选)`、`PostgreSQL(可选)`、`Centos(可选)`、`Docker(可选)`。
下面以Mysql作为数据库,用**配置文件方式**启动为例做介绍,其他方式参考详细文档。
下载源码到本地,然后用VS2019打开解决方案并编译通过。
打开项目Hos.ScheduleMaster.Web根目录下的`appsettings.json`文件,先修改Mysql数据库连接字符串以保证数据库正常访问,再找到`NodeSetting`节点,修改`IP`字段为master将要部署的ip地址(master端口为30000不用修改),在项目上右击选择发布...,发布到本地文件夹。
打开项目Hos.ScheduleMaster.QuartzHost根目录下的`appsettings.json`文件,同样先修改Mysql连接字符串,再找到`NodeSetting`节点,设置worker的名称`IdentityName`,修改`IP`字段为将要部署的ip地址,`Port`字段为要监听的地址(推荐为30001),在项目上右击选择发布...,发布到本地文件夹。如果要新增worker,按同样方式配置`IdentityName、IP、Port`即可,worker在启动后会把自己的信息注入到数据库中,在master中可以看到。
> 快速发布小贴士:windows平台下用powershell执行脚本`publish.ps1`快速发布到`d:/sm-publish`目录,linux平台下执行脚本`sh publish.sh`快速发布到`/home/sm-publish`目录。
其他发布方式亦可。下面以运行2个worker节点为例:
### 在Windows中运行
* 找到master的发布目录,执行命令`dotnet Hos.ScheduleMaster.Web.dll`启动程序,**首次启动会自动迁移生成数据库结构并初始化种子数据**,打开浏览器输入ip和端口访问即可(初始用户名`admin`,密码`111111`)。
* 找到worker的发布目录,执行命令`dotnet Hos.ScheduleMaster.QuartzHost.dll --urls http://*:30001`启动程序,打开浏览器输入ip和端口会看到一个欢迎页面,表示worker已启动成功。
* 修改worker下的`appsettings.json`文件为worker2的配置(如果发布前已经修改可跳过),执行命令`dotnet Hos.ScheduleMaster.QuartzHost.dll --urls http://*:30002`启动程序.
* 登录到master中,可以看到**节点管理**菜单下各节点的运行状态。
### 在Linux(Centos)中运行
> 运行前请确保机器已经安装好`.NET Core3.1`运行时环境。
把发布文件复制到Centos中,操作步骤同Windows。
### 在Docker中运行
* 在master的发布目录中执行`docker build -t ms_master .`命令生成master镜像,再执行`docker run -d -p 30000:30000 --name="mymaster" ms_master`运行容器。
* 在worker的发布目录中执行`docker build -t ms_worker .`命令生成worker镜像,再执行`docker run -d -p 30001:80 --name="myworker1" ms_worker bash --identity=docker-worker1 --ip=你的宿主机IP --port=30001`运行容器启动worker1。
* 继续执行`docker run -d -p 30002:80 --name="myworker2" ms_worker bash --identity=docker-worker2 --ip=你的宿主机IP --port=30002`运行容器启动worker2。
* 执行`docker ps`查看各容器运行状态,如果运行不起来请检查容器log。
<br />
## 效果图
![image.png](https://i.loli.net/2020/11/23/GHgZONf3MADIX1x.png)
![image.png](https://i.loli.net/2020/11/23/rx9ncZX6Bhv75tH.png)
![image.png](https://i.loli.net/2020/11/23/sFOyZQX8C31Pu7V.png)
![image.png](https://i.loli.net/2020/11/23/A3HZ7kTQymL6tud.png)
![image.png](https://i.loli.net/2020/11/23/vjYHG3KLtFiWEmO.png)
![image.png](https://i.loli.net/2020/11/23/MAEt1Hdeyz3NOXl.png)
<br />
## 文档
- https://github.com/hey-hoho/ScheduleMasterCore/wiki
<br />
## 交流学习
QQ群:824535095
<br />
## 使用情况
- https://github.com/hey-hoho/ScheduleMasterCore/issues/24
<br />
## 赞赏
金额请随意,赞赏请备注~
![wechat.png](https://i.loli.net/2020/11/23/sfiVUxcbzX3CvO1.png)
![alipay.png](https://i.loli.net/2020/11/23/3Lzrm6QURgnJVsA.png)
没有合适的资源?快使用搜索试试~ 我知道了~
分布式任务调度系统,它基于.NET Core 3.1平台构建,支持跨平台多节点部署运行.zip
共375个文件
cs:130个
js:49个
css:36个
0 下载量 36 浏览量
2024-08-22
16:48:04
上传
评论
收藏 7.61MB ZIP 举报
温馨提示
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全栈开发),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:项目具体内容可查看/点击本页面下方的*资源详情*,包含完整源码+工程文件+说明(若有)等。【若无VIP,此资源可私信获取】 【本人专注IT领域】:有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为您提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【适合场景】:相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可基于此项目来扩展开发出更多功能 #注 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担 2. 部分字体及插图等来自网络,若是侵权请联系删除,本人不对所涉及的版权问题或内容负法律责任。收取的费用仅用于整理和收集资料耗费时间的酬劳 3. 积分资源不提供使用问题指导/解答
资源推荐
资源详情
资源评论
收起资源包目录
分布式任务调度系统,它基于.NET Core 3.1平台构建,支持跨平台多节点部署运行.zip (375个子文件)
20200622035045_tracessummary.Designer.cs 29KB
SmDbContextModelSnapshot.cs 29KB
20200515024401_delaytask.Designer.cs 28KB
ScheduleService.cs 26KB
QuartzManager.cs 25KB
20200411091721_update.Designer.cs 22KB
20200405073814_http.Designer.cs 20KB
20200411091721_update.cs 13KB
ScheduleController.cs 13KB
20200405073814_http.cs 12KB
DelayPlanManager.cs 12KB
NodeService.cs 11KB
ModelBuilderExtensions.cs 9KB
SystemController.cs 9KB
BaseRepository.cs 9KB
20200515024401_delaytask.cs 9KB
DelayedTaskService.cs 8KB
20200622035045_tracessummary.cs 8KB
ConfigurationCache.cs 7KB
AdminController.cs 6KB
TaskController.cs 6KB
AccountController.cs 6KB
AccountService.cs 6KB
IScheduleService.cs 6KB
DelayedTaskController.cs 5KB
Startup.cs 5KB
HttpSchedule.cs 5KB
HosScheduleFactory.cs 5KB
AppExtensions.cs 5KB
ApiCreateTest.cs 4KB
AutowiredAttribute.cs 4KB
DelayQueue.cs 4KB
ScheduleEntity.cs 4KB
DelayTaskTest.cs 4KB
ObjectMapper.cs 4KB
ScheduleDelayedEntity.cs 4KB
SecurityHelper.cs 4KB
ServerClient.cs 4KB
WorkerDispatcher.cs 4KB
SystemService.cs 4KB
DelayedTaskController.cs 4KB
LogHelper.cs 4KB
RootJob.cs 3KB
MockController.cs 3KB
TaskBase.cs 3KB
DbContext.cs 3KB
EnumHelper.cs 3KB
RunTracer.cs 3KB
AppLifetimeHostedService.cs 3KB
AppLifetimeHostedService.cs 3KB
ServerController.cs 3KB
Extensions.cs 3KB
BackgroundTimerHostedService.cs 3KB
TaskContext.cs 3KB
INodeService.cs 3KB
AssemblyHelper.cs 3KB
BufferQueue.cs 3KB
ConsoleController.cs 3KB
IAccountService.cs 3KB
Startup.cs 3KB
LoginController.cs 2KB
JsonNetResult.cs 2KB
MailKitHelper.cs 2KB
HosControllerActivator.cs 2KB
ServiceResponseMessage.cs 2KB
ServerNodeEntity.cs 2KB
RepositoryFactory.cs 2KB
QuartzController.cs 2KB
SystemLogEntity.cs 2KB
ScheduleTraceEntity.cs 2KB
TaskUseDI.cs 2KB
ListPager.cs 2KB
AssemblySchedule.cs 2KB
NodeRegistry.cs 2KB
LockTest.cs 2KB
IDelayedTaskService.cs 2KB
ApiController.cs 2KB
ScheduleInfo.cs 2KB
LogManager.cs 2KB
SystemUserEntity.cs 2KB
ScheduleHttpOptionEntity.cs 2KB
AccessControlFilter.cs 2KB
GlobalExceptionFilter.cs 2KB
PluginLoadContext.cs 1KB
TaskClearJob.cs 1KB
DelayTaskController.cs 1KB
ISystemService.cs 1KB
ApiValidationFilter.cs 1KB
PredicateExtensions.cs 1KB
SystemConfigEntity.cs 1KB
DatabaseLock.cs 1KB
ServiceProviderWrapper.cs 1KB
StaticController.cs 1KB
SystemSchedulerRegistry.cs 1KB
AjaxRequestOnlyAttribute.cs 1KB
ScheduleServiceClient.cs 1KB
JavaScriptResult.cs 1KB
ScheduleControllerTest.cs 1011B
Program.cs 968B
EntityFrameworkContextExtensions.cs 965B
共 375 条
- 1
- 2
- 3
- 4
资源评论
热爱技术。
- 粉丝: 2947
- 资源: 7864
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 08 -保密协议模板(单方保密).docx
- 25 -图纸保密协议.doc
- 23 -入职保密协议.doc
- 29 -员工保密及同业竞争禁止协议.doc
- 26 -图纸保密协议.docx
- 34 -专利保密协议.doc
- 实用carsim进行仿真simulink基于mpc进行汽车的控制使得汽车按照给定路径点进行运行生成视频.zip
- 神经处理Matlab工具包是一组函数,用于加载和操作来自Blackrock Microsystems数据文件CCF N.zip
- 用MATLAB代码进行仿真,论文题目为“端到端延迟约束下的高效节能任务卸载”.zip
- 使用不同的定制滤波器在matlab中对SAR图像进行斑点减少Mean filter霜filter修改霜filter添加.zip
- 使用MATLAB将深度图像转换为HHA图像。在这个repo中,我将使用NYU depth V2数据集作为示例.zip
- 02-竞业协议书.docx
- 06-竞业禁止协议.docx
- 07-竞业禁止协议.docx
- 15 -竞业限制合同.docx
- 14 -竞业禁止协议.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功