日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

.NET Core下的开源分布式任务调度系统ScheduleMaster-v2.0低调发布

發布時間:2023/12/4 windows 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET Core下的开源分布式任务调度系统ScheduleMaster-v2.0低调发布 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從1月份首次公開介紹這個項目到現在也快4個月了,期間做了一些修修補補整體沒什么大的改動。2.0算是發布之后第一個大的版本更新,帶來了許多新功能新特性,也修復了一些已知的bug,在此感謝在博客、Issue和QQ群中提出各種意見的朋友,以及指導過我的前輩大佬們。

在我看來,這個項目沒有使用任何高深的技術和架構,甚至有些代碼寫的自己都不滿意不敢拿出來給大家觀賞,和社區中其他一些開源項目的大佬們比起來自慚形穢。但是這幾個月陸續收到一些小伙伴的支持和鼓勵,也被一些源碼網站收錄和推薦,讓我有勇氣和信心把它繼續做下去,貴在堅持吧。

新版本主要是增加了HTTP任務調度以及節點管理功能,開發過程中重構了部分代碼,本來還打算完善一下單元測試,由于時間關系無奈延后了。

不太熟悉的朋友可以看下之前的介紹:

  • https://www.cnblogs.com/hohoa/p/12162581.html

  • https://www.cnblogs.com/hohoa/p/12197518.html

新版本特性

  • 完善了任務生命周期事件

  • 任務列表支持節點名稱搜索和顯示優化

  • 支持配置HTTP任務

  • 支持節點手動管理

  • 支持在程序集任務中指定自定義配置文件

  • 支持長任務取消

  • 新增了一些系統策略配置

  • 新增了動態參數啟動,對容器部署更友好

  • 推出正式文檔

  • 補充了一些使用demo

  • 修復若干bug

本次更新稍有遺憾的是對HTTP任務授權認證處理這塊,我所了解到的開放API基本都實現了自己的一套簽名驗證機制,更完善的則會使用OAuth2那一套東西,使用簡單BASIC認證或JWT的比較少一些,所以感覺接入BASIC和JWT的意義不大,但是面對五花八門的接口簽名或OAuth我暫時也沒有太好的方案,只好先給出一個簡陋的HTTP調度功能,日后還會繼續思考探索把這塊加上。

到這里系統的核心調度功能基本差不多了,接下來會重點考慮異步化、資源監控、性能監控和更加自由的策略配置方面的東西。有些朋友也建議能否支持多數據庫類型、改成SPA應用等等,這種需求目前不是很緊急,會往后放一放再看。

先睹為快

由于開始維護正式文檔,博客中后期會有內容更新不及時,請以github wiki為準。

1、提供了任務初始化入口:

public virtual void Initialize() {///TODO: }

我們可以在這里加載自己的配置文件(支持熱更新):

/// <summary>/// 演示如何設置自己的配置文件,以及讀取配置項/// </summary>public class CustomConfigFile : TaskBase{public override void Initialize(){//指定配置文件base.SetConfigurationFile("myconfig.json");}public override void Run(TaskContext context){context.WriteLog($"我的配置TestKey1:{Configuration["TestKey1"]}");context.WriteLog($"我的配置TestKey2:name->{Configuration["TestKey2:Name"]} age->{Configuration["TestKey2:Age"]}");}} // myconfig.json {"TestKey1": "MyValue1","TestKey2": {"Name": "hoho","Age": 18} }

或者做一些DI綁定的東西:

/// <summary>/// 演示如何在業務中使用DI/// </summary>public class TaskUseDI : TaskBase{IServiceProvider serviceProvider;public override void Initialize(){var serviceCollection = new ServiceCollection();serviceCollection.AddTransient<ITemplateService1, TemplateService1>();serviceCollection.AddTransient<ITemplateService2, TemplateService2>();serviceProvider = serviceCollection.BuildServiceProvider();base.Initialize();}public override void Run(TaskContext context){context.WriteLog($"我是使用DI獲取的結果:{new TaskUseDITest(serviceProvider.GetService<ITemplateService1>()).GetResult()}");}}

Initialize()方法的特點是只會在創建任務實例時執行一次(當然你也可以使用構造函數實現),伴隨直到任務實例銷毀(停止)的整個周期。

2、在控制臺中配置HTTP任務

[HttpPost]public string JsonPost(Blog model){return "ok";}


3、新增的若干配置項

4、禁用自動注冊模式,使用master主動創建并接管worker

5、使用命令行傳參覆蓋配置文件

// docker鏡像中的配置文件 {"NodeSetting": {"IdentityName": "worker1","Role": "worker","Protocol": "http","IP": "localhost","Port": 30001,"Priority": 1} } [root@master1 ms_worker1]# docker run -d -p 40001:80 --name="myworker1" ms_worker bash --identity=docker-worker1 --ip=192.168.174.5 --port=40001 5e446997d4a28b3c6ec0708a88d42a4d6baad1e5d5ae686d88c03e99c4e2003f

更多的等著你來慢慢探索~

未來展望

本項目始終秉持部署簡單+操作簡單的核心理念持續進行迭代更新,積極響應各方的建議和需求,為開源社區添磚加瓦~

作者唯一開源地址:

  • https://github.com/hey-hoho/ScheduleMasterCore

  • https://gitee.com/hey-hoho/ScheduleMasterCore?(只從github同步)

文檔(還在逐步更新中):

  • https://github.com/hey-hoho/ScheduleMasterCore/wiki

感謝大家支持~

總結

以上是生活随笔為你收集整理的.NET Core下的开源分布式任务调度系统ScheduleMaster-v2.0低调发布的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。