欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python程序進程掛掉,該怎么處理?

林雅南2年前14瀏覽0評論

你的問題太模糊了。我先從常見的錯誤說,然后再從相對從大的方面來描述。

進程掛掉可能是什么原因?

  • 一方面是程序可能有邏輯錯誤,導致了諸如下標越界,數據異常等問題。

  • 另一方面,可能是系統原因,比如代碼質量一般,系統資源消耗厲害,進程退出。

  • 還有可能是上下游服務問題,比如MySQL等服務異常,上游API異常,配置錯誤。

簡單說了下各種可能的異常,但對一個項目而言,天下問題千千萬,不可能有一條完美的準則。

遇到問題,通常要從幾步出發,從排查出錯原因、尋找解決方案和如何預防出發。

排查錯誤的原因,這是最重要的一步,只有對癥下藥才能解決問題。

首先確認下是否容易復現的問題,容易復現的話,通常會給出錯誤信息。然后,我們只要在開發時調試下就好了,常見的調試方法有print打印來觀察問題,或者是使用一些debug調試工具,我相信你會用。print的特點是簡單好用,但每次都有修改代碼,比較繁瑣。而調試工具就比較方便,看的信息會比較全,一些IDE都集成了調試工具。

對于不容易復現的問題,可以通過記錄日志的方式排查。有人會說,記錄日志是資源消耗,曾經我也怎么想過。但對于現在的硬件配置而已,記錄日志的成本是非常小的,一個好像的項目肯定是集成日志的,不然就太low逼了,我可不敢用。

尋找解決方案,這一步需要基于前面診斷出的結果進行排查。

一個簡單的案例。比如,提示MySQL連接數過多,什么情況可能導致這個問題?是MySQL配置的連接數本身就很少,還是程序設計不合理導致連接無法正確復用,亦或是業務量真的大了,當前最大連接數無法承受呢。每種情況的處理方式都不同。

如何預防問題,我主要想學詳細的日志,和增加一些恢復機制。

詳細的日志就不說了,異常要記得捕獲,并且記錄發生異常的原因,這一步對排查問題非常有幫助。

另外,不是所有的異常都應該立刻退出進程,如果不是一些非常嚴重的錯誤,通過日志提示下,程序還可以繼續工作。不過,有些異常還是要做一些修復處理,比如數據庫連接斷開,可嘗試重新連接,上游系統服務異常,可以執行多次調用,而不是直接退出。

就簡單說這么多吧!如果有些地方講的不是很好,見諒。歡迎評論補充,謝謝!