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
金額請隨意,讚賞請備註~