文章詳情頁
redis - 如何給輕量python程序、腳本制作緩存?
瀏覽:96日期:2022-06-30 14:23:37
問題描述
運維菜鳥,最近在做公司日志進行簡單處理之后,按一定數(shù)量加入一個list,然后使用ES的接口將數(shù)據批量添加到另外一臺ElasticSearch上,再通過一些方式進行展示。這里遇到一個問題,如果數(shù)據插入時,發(fā)生異常。比如要插入的es主機崩潰等,但是數(shù)據源沒有問題。這樣就應該把已經處理完的數(shù)據移到緩存中,然后停止程序。(數(shù)據源是kafka,即便停止了程序,重新啟動后仍可以消費之前沒有消費的)那么想問一下,對于比較輕量的python程序或者腳本,應該使用怎樣的方式存儲這些異常狀況發(fā)生時要先存儲下來的數(shù)據呢?
問題解答
回答1:可以在es異常時, py腳本捕獲到異常后, 使用cPickle或者pickle 將處理好的數(shù)據序列化后保存到一個文件上(你可以理解成寫入一個文件, 不同在于cPickle和pickle能夠將字典或者列表這樣的對象直接寫入文件), 然后等你es恢復了, 重新啟動該py腳本, 那么該腳本優(yōu)先去檢測是否存在這個臨時文件, 如果有, 并非空, 則把里面的數(shù)據取出, 寫入es
相關文章:
1. javascript - 原生canvas中如何獲取到觸摸事件的canvas內坐標?2. 對mysql某個字段監(jiān)控的功能3. html - vue項目中用到了elementUI問題4. mysql優(yōu)化 - mysql EXPLAIN之后怎么看結果進行優(yōu)化 ?5. JavaScript事件6. css3 - css怎么實現(xiàn)圖片環(huán)繞的效果7. css3 - border-bottom 的長度可否超過盒子的寬度呢?實現(xiàn)如下圖效果。(我的書下面的線)8. showpassword里的this 是什么意思?代表哪個元素9. javascript - windows下如何使用babel,遇到了困惑10. mysql scripts提示 /usr/bin/perl: bad interpreter
排行榜
