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

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

線程暴長~Quartz中創建Redis頻繁后導致線程暴長

2019-11-14 14:04:07
字體:
來源:轉載
供稿:網友

在最近項目開發過程中,在進行任務調度處理過程中,出現了一個問題,它的線程數暴長,從20多個可以到1000多個,如果你的服務器性能好的話,可以到10000多個,太恐怖了,就算你的服務再好,早晚有一天也會被new Redis炸干!哈哈!

原因:非托管資源使用過多,沒有得到釋放

一 連接網絡資源過多,如redis,mongo,sql等

二 原生的數據庫對象創建過多(自己沒有連接池,現在的linq沒這問題)

三 文件資源使用過多,沒有得到釋放

解決方法:

使用單例模式減少new操作的次數

對于我們應用程序的線程,如果它持續增長,那么,你就要看一下那么非托管資源是否被釋放了,這個要重視起來。

有人說這個文章是個標題黨,不知道從哪里發明的這個“新名詞”,所以我把代碼也發一下吧

/// <summary>    /// Redis客戶端    /// </summary>    public class RedisClient : IDisposable    {        public static RedisClient Instance;        PRivate ConnectionMultiplexer conn;        private IDatabase cache;        Private static Object lockObj=new Object();        #region Constructors        static RedisClient()        {            lock(lockObj)            {              Instance = new RedisClient();            }        }        private RedisClient()        {            conn = ConnectionMultiplexer.Connect("localhost"); //var conn = ConnectionMultiplexer.Connect("redis0:6380,redis1:6380,allowAdmin=true");            cache = conn.GetDatabase();        }        #endregion        #region Behaviors        public void Push(string key, object value)        {            cache.Push(key, value);        }        public object Pop(string key)        {            return cache.Pop(key);        }        public T Pop<T>(string key)        {            return cache.Pop<T>(key);        }        public T Get<T>(string key)        {            return cache.Get<T>(key);        }        public object Get(string key)        {            return cache.Get(key);        }        public void Set(string key, object value)        {            cache.Set(key, value);        }        #endregion        #region IDisposable        public void Dispose()        {            conn.Dispose();        }        #endregion    }

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 化州市| 临江市| 同仁县| 梁山县| 甘德县| 平昌县| 新河县| 张家口市| 沁阳市| 华池县| 红河县| 呈贡县| 江安县| 固原市| 曲麻莱县| 宜州市| 缙云县| 长沙县| 土默特右旗| 嘉荫县| 饶河县| 新巴尔虎左旗| 竹溪县| 涟水县| 晴隆县| 扎鲁特旗| 朝阳县| 景德镇市| 台江县| 隆林| 锡林浩特市| 本溪市| 大同县| 克拉玛依市| 灵台县| 都昌县| 喜德县| 江川县| 普兰县| 贡觉县| 红河县|