通過過濾器實現效能監控(含原始碼)

2022-03-25 04:12:22 字數 2371 閱讀 5131

由於最近系統訪問量過大,相關系統間處理不同步,造成相互等待時間較長,影響系統整體執行效能,造成使用者明顯感覺響應時間慢、體驗不好。所以就對每乙個模組的訪問人數加一控制。

進而決定用過濾器與redis。

此頁面在資料存在redis中。當頁面開啟時如果redis中頁面資料為空,則進行資料初始化。沒有設定新增頁面,具體原因嗎?因為控制的模組是固定的,當新增模組式,直接新增redis頁面資料即可。有點不合理哈,不過先這樣處理吧。

設定效果圖

1.1.1.redis連線基類  

每次操作redis繼承此基類即可.

public abstract class redishelper

public redishelper(string configuration_string)

public void set_configuration_string(string configuration_string)

public iredisclient rs

if (this._client == null)

return this._client;}}

}}

1.1.2.專案中redis的使用

(1)配置檔案

其中路徑可以直接寫伺服器ip位址。我把他寫成字串,是為了開發環境和正是環境都不用修改程式,直接做ip對映就行了。

(2)連線redis伺服器

public class dbperfmon : redishelper

1.1.3.資料操作【獲取各模組訪問資料,設定最大訪問數,刪除指定redis資料】

(1)其中loginname為redis key值。【乙個人同時只能操作乙個模組】

(2)模組名稱為redis value值

注:簡單說一下具體方法:

public

class

dbperfmon : redishelper

public

bool setmaxtimes(string code, string name, int

times);;

if (rs.get>("

perfmon

") == null

) list.add(time);

else

if (list.exists(l => l.code == code && l.name ==name))

else

var flag = rs.set>("

perfmon

", list);

}return

true

; }

catch

(exception ex)

}public listgetperfmons()));

}return

list;

}int modulcount(string

modulename)

public

bool pagepush(string modulename, string

loginusername)

//}if (maxtime return

false

;

//return rs.set(loginusername, modulename, datetime.now.addminutes(30));

return

rs.set(loginusername, modulename);}}

public

bool pageremove(string

loginusername)

}}

c#中過濾器在這不再累述。準備在以後c#特性中進行詳細敘述。分別在方法執行前與方法執行後進行呼叫上邊的方法。

判斷當前訪問人數是否大於指定訪問人數,不大於則加一,繼續action

public override void onactionexecuting(actionexecutingcontext filtercontext)

}

action執行後,刪除該訪問人數redis資訊

public override void onresultexecuted(resultexecutedcontext filtercontext)

此方法是後續加的,沒有過多的測試。

public

class

exceptionfilterattribute : handleerrorattribute

}

出處:

angularJs通過過濾器實現獲取資料字典

快取資料字典 var dicmap json.parse dictdata 獲取字典值的方法 param key 關鍵字 param type 大類 return 返回結果對像 success為true,則value為字典值 arm.getdict function key,type result....

angularjs通過過濾器返回超連結

在專案中有乙個功能,需要把一段字串拼接成乙個超連結,效果如下圖,從資料庫中得到的字串格式如下 資料的格式很工整,以 和空格為標誌就可以很順利的分割,開始想象的很美好,以為直接返回就好了。但是現實很殘酷,a標籤並沒有變成超連結,而是變成了乙個字串 檢查發現並沒有被轉義,對這個感到不太理解 之後又在網上...

部落格園 CSDN部落格過濾器(附原始碼)

一 寫文章的目的 我在工作之餘總喜歡刷刷和csdn的文章,甚至有時漫無目的,影響到了工作。所以有時會想,每天這麼多文章,有哪些是自己想要的,哪些是自己用不上的,與其一篇篇看,不如做個過濾器,將兩個 的文章整合在一起,並新增些過濾條件,且不方便?二 功能分析 1 整合首頁 和csdn熱門部落格 5 以...