ScheduleMaster是一个开源的分布式任务调度系统,它基于.NET Core 3.1平台构建,支持跨平台多节点部署运行。
ASP.NET Core3.1、EntityFramework Core3.0、Mysql5.7、Quartz.Net、BeyondAdmin、Jquery...
使用前请准备好所需环境:
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节点为例:
dotnet Hos.ScheduleMaster.Web.dll
启动程序,首次启动会自动迁移生成数据库结构并初始化种子数据,打开浏览器输入ip和端口访问即可(初始用户名admin
,密码111111
)。dotnet Hos.ScheduleMaster.QuartzHost.dll --urls http://*:30001
启动程序,打开浏览器输入ip和端口会看到一个欢迎页面,表示worker已启动成功。appsettings.json
文件为worker2的配置(如果发布前已经修改可跳过),执行命令dotnet Hos.ScheduleMaster.QuartzHost.dll --urls http://*:30002
启动程序.运行前请确保机器已经安装好
.NET Core3.1
运行时环境。
把发布文件复制到Centos中,操作步骤同Windows。
docker build -t ms_master .
命令生成master镜像,再执行docker run -d -p 30000:30000 --name="mymaster" ms_master
运行容器。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。QQ群:824535095
金额请随意,赞赏请备注~