跑資料流程這幾天總是出錯,暫時還沒有精力重構,先處理一些緊急的問題吧。鑑於目前問題都出在mysql執行查詢出錯的情況,決定對mysql_query進行封裝。封裝函式如下。
目前只處理2006錯誤,對於1317錯誤,只有重試的方法,以後再補充。
對於2006錯誤,需要重連mysql,但是有一點需要注意的是,在重連之前一定要先關閉之前的連線,否則永遠報2006錯誤
之前沒寫過異常處理,try{}catch(){},嘿嘿,用了一下就會了。
* @param $sql 需要執行的sql語句
* @param $link 資料庫連線
* @param $conn 使用線上還是線下資料庫,預設為線下 online:線上 offline:線下
function dh_mysql_query($sql, &$link=null, $db) catch(exception $e)else while(!$ret && $i<5);
if(!$ret){
$ec = mysql_errno();
$err = mysql_error();
$desc = json_encode(array('event'=>'mysql query error','sql'=>$sql,'errno'=>$ec,'errmsg'=>$err,'debug_info'=>debug_backtrace(true)));
write_log($desc);
//curl_send_msg('13691102775',$desc);
//exit($desc);
return $ret;
以後再補充針對mysql其他錯誤的處理方式
mysql 丟擲異常sql mysql 異常處理
該文章內容通過網路搜尋組合,mysql 異常,可以自定義異常,再應用。也可使用系統預設的異常,捕獲應用。一 異常定義 declare condition name condition for condition type condition name引數表示異常的名稱 condition type引...
mysql 多異常 處理 MYSQL效能異常處理
通過information schema.processlist表中的連線資訊生成需要處理掉的mysql連線的語句臨時檔案,然後執行臨時檔案中生成的指令 mysql select concat kill id,from information schema.processlist where use...
spark on yarn 模式在hdp異常處理
其中乙個異常關鍵字 bad substitution 然後在stackoverflow發現相同提問,文中提到是因為沒有制定hdp版本,我才明白spark bin hadoop,編譯的是原生態的hadoop。英文應該都懂,我就不用翻譯了。正常情況遇見問題,不應該直接在網上找答案,診斷流程 從log或者...