日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

某业务付费统计脚本问题排查

發布時間:2024/9/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 某业务付费统计脚本问题排查 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現象:產品反饋未收到每周五的VIP郵箱付費統計郵件


1. 這個統計腳本我從未經手過,因此不知道邏輯是什么,也不知道代碼在哪里.通過查看郵件源文件中的來源IP,找到了發出郵件所在的服務器,信頭中有類似這樣的來源IP
X-Originating-IP: [xx.xx.xx.86]

2.登陸服務器后,查看crontab的定時規則,找到定時規則是0 0 * * * /bin/sh /xxx/feeUser.sh.每天都會執行一次feeUser.sh的腳本.通過cron.log可以看到該腳本已經執行過了


3.腳本中的邏輯是,每天判斷今天的日志文件是否存在,如果不存在就執行一個php腳本,把該腳本的輸出重定向到這個日志文件中.
判斷如果是周五,就調用php腳本發送一封通知郵件,郵件的內容是對每天日志文件的wc -l行數統計.

4.今天是周五但是郵件沒有發出,說明根本就沒有執行到發送郵件的邏輯.在前面的統計今天用戶付費情況時就已經斷掉了.

5.查看php.ini的配置文件,看到沒有開啟log_errors,也沒有指定error_log的位置,所以沒法通過php的日志看到發生了什么錯誤

6.此腳本是14年左右開始運行的,時間也比較久了.在研究php代碼的邏輯后發現,在查詢數據庫的時候,先查出第一個數據庫的某表信息后,循環查詢另一個數據庫的另一張表,在這個循環的過程中,連接數據庫的邏輯放在了循環塊里面,猜測可能因為連接過多,被數據庫拒絕后讀取失敗吧.

7.里面還有處邏輯挺有想法,讀取第一張表的時候,每次只查詢10000條,然后再從新連接數據庫new PDO對象,估計也是為了防止執行時間太長連接斷掉.
每天php腳本把用戶查詢出來后,重定向到比如2019-9-20-user.log,周五在統計每天的日志行數發送給產品,這樣就可以如果產品需要具體用戶時也可以留著這個結果


8.先把連接數據庫邏輯挪出來,補齊了強兩天斷掉的數據,把錯誤日志打開暫時先觀察觀察

轉載于:https://www.cnblogs.com/taoshihan/p/11558299.html

總結

以上是生活随笔為你收集整理的某业务付费统计脚本问题排查的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。