python裝飾器實現(xiàn)對異常代碼出現(xiàn)進行自動監(jiān)控的實現(xiàn)方法
異常,不應(yīng)該存在,但是我們有時候會遇到這樣的情況,比如我們監(jiān)控服務(wù)器的時候,每一秒去采集一次信息,那么有一秒沒有采集到我們想要的信息,但是下一秒采集到了, 而后每次的采集都能采集到,就那么一次采集不到,我們應(yīng)該針對這一次采集不到進行分析嗎,這種的情況可以說無法重復(fù)出現(xiàn),我們也無法避免,因為外界的因素太多太多,我們無法去控制這些外面的因素,所以我們會有這樣的需求,一段時間內(nèi)出現(xiàn)頻率多少次,我們才能顯示一次報警,或者說,一段時間內(nèi)出現(xiàn)的頻率達到我們的異常許可范圍我們認為這樣的屬于異常,我們可以發(fā)出報警。
那么我們怎么來實現(xiàn)呢,我想到了裝飾器,當程序執(zhí)行到異常后,我記錄時間,寫入文件,然后讀取最近的第五次的判斷,兩者時間戳的只差小于60s,我認為這樣的可以發(fā)送警報,如果大于60s,則認為不足以發(fā)出我們的警告,
那么我們來看看我們的代碼應(yīng)該怎么寫。
import datetime,time,random def make(func): def mak(*args,**kwargs): try: func(*args,**kwargs) except: with open('except.txt','a+') as f: except_time=datetime.datetime.now() f.writelines(except_time.strftime('%Y-%m-%d %H:%M:%S')+'\n') f.close() with open('except.txt','rb') as m: try: date=m.readlines()[-5].decode('utf-8') ne=(date.split('\r\n')[0]) f1=datetime.datetime.strptime(ne,'%Y-%m-%d %H:%M:%S') if (except_time-f1).seconds<6: print('異常!??!fail') else: print('正常!') m.close() except: print('越界代表著我們的實驗是成功的') return mak @make def beijing(i,m): print(i/m) if __name__=="__main__": while True: f=random.choice([0,1,2,3]) n=random.choice([0,1,2,3]) beijing(f,n) time.sleep(0.3)
這樣我們針對一個程序的異常監(jiān)控就實現(xiàn)了,我們來運行下這個異常監(jiān)控的代碼。,
我們可以看到我們的代碼可以正常運行,那么我們來試試,我們對多個程序的代碼進行監(jiān)控,我們的腳本可不可以實現(xiàn)呢。
@make def shanghai(i,m): print(i/m) @make def rizhao(i,m): print(i/m) @make def zhengzhou(i,m): print(i/m)
PS:遇到問題沒人解答?需要Python學(xué)習(xí)資料?可以加點擊下方鏈接自行獲取
note.youdao.com/noteshare?id=2dce86d0c2588ae7c0a88bee34324d76
我們增加這么幾個方法,并且我們?nèi)ミ\行他們,
我們可以看到,只要有異常,我們的程序都會記錄,當然了,這樣的還不能正常利用到我們的工作中,
稍后,可以將這里的異常監(jiān)控的部分的實踐,和我之前寫的異常監(jiān)控腳本想結(jié)合下。
總結(jié)
到此這篇關(guān)于python裝飾器實現(xiàn)對異常代碼出現(xiàn)進行自動監(jiān)控的實現(xiàn)方法的文章就介紹到這了,更多相關(guān)python裝飾器自動監(jiān)控內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python?dowhy數(shù)據(jù)估計因果分析功能探索
這篇文章主要為大家介紹了python?dowhy數(shù)據(jù)估計因果分析功能實例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-02-02Pycharm無法打開雙擊沒反應(yīng)的問題及解決方案
這篇文章主要介紹了Pycharm無法打開,雙擊沒反應(yīng),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08python 限制函數(shù)執(zhí)行時間,自己實現(xiàn)timeout的實例
今天小編就為大家分享一篇python 限制函數(shù)執(zhí)行時間,自己實現(xiàn)timeout的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01Python如何telnet到網(wǎng)絡(luò)設(shè)備
這篇文章主要介紹了Python如何telnet到網(wǎng)絡(luò)設(shè)備,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-02-02