国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

.net分布式架構之任務調度平臺

2019-11-14 13:50:20
字體:
來源:轉載
供稿:網友

開源地址:http://git.oschina.net/chejiangyi/Dyd.BaseService.TaskManager

.net 任務調度平臺

用于.net dll,exe的任務的掛載,任務的隔離,調度執行,訪問權限控制,監控,管理,日志,錯誤預警,性能分析等。

1) 平臺基于quartz.net進行任務調度功能開發,采用C#代碼編寫, 支持corn表達式和第三方自定義的corn表達式擴展。

2) 架構以插件形式開發,具有良好的功能擴展性,穩定性,簡單性,便于第三方開發人員進一步進行功能擴展。

3) 支持多節點集群,便于集群服務器的資源有效分配,任務的相互隔離。

4) 支持郵件形式的錯誤預警,便于運維及時處理任務異常等。


開源相關群: .net 開源基礎服務 238543768

任務demo

using System;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using System.Text;using System.Threading.Tasks; namespace Dyd.BaseService.TaskManager.Demo{    /// <summary>    /// 任務調度平臺 任務插件的寫法demo及說明    /// </summary>    public class DemoTask : XXF.BaseService.TaskManager.BaseDllTask    {        /// <summary>        /// 任務調度平臺根據發布的任務時間配置,定時回調運行方法        /// 開發人員的任務插件必須要重載并該方法        /// </summary>        public override void Run()        {            /*              * this.OpenOperator 用于任務調度平臺提供給第三方使用的所有api接口封裝             */             /*獲取當前任務dll安裝目錄*/            this.OpenOperator.GetTaskInstallDirectory();             /*打印一條日志到任務調度平臺,因為日志會存到平臺數據庫,所以日志要精簡,對任務出錯時有分析價值【注意:不要頻繁打印無用的,非必要的,對分析無價值的日志信息】*/            this.OpenOperator.Log("這里打印一條日志到任務調度平臺");             /*打印一條錯誤到任務調度平臺,因為日志會存到平臺數據庫,所以日志要精簡,對任務出錯時有分析價值【注意:不要頻繁打印無用的,非必要的,對分析無價值的日志信息】             *后續任務會有增加優先級區分,根據任務的優先級,錯誤的出現頻率等,錯誤日志會定期推送到開發者郵箱和短信*/            this.OpenOperator.Error("這里打印一條錯誤日志到任務調度平臺", new Exception("錯誤msg信息"));             /*從數據庫獲取任務的臨時數據,臨時數據以jason的形式保存在數據庫里面,便于任務上下文的恢復和信息傳遞【注意:不應用于"頻繁的"存儲"大量的"臨時數據,會操作網絡耗時和數據庫性能差】*/            var databasetempinfo = this.OpenOperator.GetDataBaseTempData<DemoTaskDatabaseTempInfo>();            if (databasetempinfo == null)//若任務第一次運行,可能沒有臨時數據。當然也可以在發布任務的時候配置臨時數據也可。            {                databasetempinfo = new DemoTaskDatabaseTempInfo();                databasetempinfo.LastLogID = 0;            }             /*將任務的臨時數據持久化到數據庫中,臨時數據以json的形式保存在數據庫里面,便于任務上下文的恢復和信息傳遞【注意:不應用于"頻繁的"存儲"大量的"臨時數據,會操作網絡耗時和數據庫性能差】              若臨時數據用于下一次使用,必須要執行此方法,否則下次無法獲取【注意:執行此方法,當前臨時數據有可能被重置為null,便于內存資源釋放】*/            this.OpenOperator.SaveDataBaseTempData(databasetempinfo);             /*從本地安裝目錄中獲取任務的臨時數據,臨時數據以jason的形式保存在本地,便于任務上下文的恢復和信息傳遞【注意:本地臨時數據一般用于保存"大量的"臨時數據】*/            var localtempinfo = this.OpenOperator.GetLocalTempData<DemoTaskLocalTempInfo>();            if (localtempinfo == null)//若任務第一次運行,可能沒有臨時數據。當然也可以在發布任務的時候上傳臨時數據json至安裝壓縮包中也可。            {                localtempinfo = new DemoTaskLocalTempInfo();                localtempinfo.file = new byte[0];            }             /*將任務的臨時數據持久化到本地安裝目錄中,臨時數據以json的形式保存在本地安裝目錄里面,便于任務上下文的恢復和信息傳遞【注意:本地臨時數據一般用于保存"大量的"臨時數據】              若臨時數據用于下一次使用,必須要執行此方法,否則下次可能無法獲取【注意:執行此方法,當前臨時數據有可能被重置為null,便于內存資源釋放】*/            this.OpenOperator.SaveLocalTempData(localtempinfo);             {                string msg = "執行業務中...."+ this.AppConfig["sendmailhost"];                Debug.WriteLine(msg);                System.IO.File.AppendAllText(this.OpenOperator.GetTaskInstallDirectory()+"業務.txt", msg);            }        }        /// <summary>        /// 開發人員自測運行入口        /// 需要將項目配置為->控制臺應用程序,寫好PRogram類和Main入口函數        /// </summary>        public override void TestRun()        {            /*測試環境下任務的配置信息需要手工填寫,正式環境下需要配置在任務配置中心里面*/            this.AppConfig = new XXF.BaseService.TaskManager.SystemRuntime.TaskAppConfigInfo();            this.AppConfig.Add("sendmailhost", "smtp.163.com");            this.AppConfig.Add("sendmailname", "fengyeguigui@163.com");            this.AppConfig.Add("passWord", "******");             base.TestRun();        }    }     /// <summary>    /// 任務調度平臺之臨時數據信息,用于任務上下文的信息傳遞。    /// 將會以json形式保存在任務調度平臺數據庫中,便于下一次回調運行時恢復并使用。【注意:不應用于"頻繁的"存儲"大量的"臨時數據,會操作網絡耗時和數據庫性能差】    /// </summary>    public class DemoTaskDatabaseTempInfo    {        public int LastLogID { get; set; }    }     /// <summary>    /// 任務調度平臺之臨時數據信息,用于任務上下文的信息傳遞。    /// 將會以json形式保存在任務調度平臺本地安裝文件夾中,便于下一次回調運行時恢復并使用。【注意:本地臨時數據一般用于保存"大量的"臨時數據】    /// </summary>    public class DemoTaskLocalTempInfo    {        public byte[] file { get; set; }    }}

 

  
web后端部分截圖及安裝


上一篇:AutoMapper(一)

下一篇:NPOI導Excel樣式設置

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 肥城市| 河西区| 来宾市| 泗阳县| 武冈市| 赤壁市| 怀远县| 宁海县| 道孚县| 延吉市| 香格里拉县| 邵阳县| 金华市| 南和县| 沁水县| 土默特右旗| 宣汉县| 洪雅县| 湖南省| 青州市| 大同县| 绥德县| 滨州市| 宕昌县| 蓝山县| 昂仁县| 江达县| 内黄县| 阳城县| 成都市| 阿拉善右旗| 冕宁县| 伊吾县| 抚顺县| 中宁县| 铁力市| 宁强县| 靖安县| 兴文县| 扶绥县| 光山县|