ループで継続的に実行されるシェル スクリプトがあります。
データベースのレコードをチェックし、必要に応じて変更します。
set_time_limit(0);
while(true){
try{
$this->out(mysql_ping());
$companies = $this->findCompanies();
$companies = $this->reduceCompanies($companies, $rules);
$this->processCompanies($companies);
}catch (\Exception $e){
Log::write('debug', $e->getMessage());
$this->out($e->getMessage());
}
sleep(3);
}
私が抱えている問題は、このスクリプトは正常に実行されているように見えますが、ランダムにスローされることです:「2006 MySQL server has gone away」 例外キャッチにいくつかのものを入れて、mysql サーバーに再接続しようとしました。
}catch (\Exception $e){
if(!mysql_ping()){//tried
$this->connection->reconnect(); //also tried
$this->Company->getDatasource()->reconnect(); neither seem to work.
}}
データベースに再接続する方法について何か提案はありますか?