データベースへの接続を確立するphpギアマンワーカーを実行しています。ただし、問題は、約 8 時間後に mysql 接続が切断され、ワーカーがクラッシュすることです。そのため、データベースを切断して、データベースへの新しい接続を再度作成したかったのです。
私は CDbConnection を使用して Yii のデータベースに接続していますが、"setActive(false)" が私のためにトリックを行うことを期待していました。以下では、「明示的に切断」してデータベースクエリを作成しています....クエリが例外をスローすることを期待していますが、「setActive」がまったく影響を与えず、クエリが正常に実行されることに驚いています。
//if it fails then reconnect to the database
Yii::app()->db->setActive(false);
try {
$model = MyModel::model()->findByPk(10);
var_dump($model);
} catch (exception $e) {
echo "got exception -- ".$e->getMessage()."\n";
Yii::app()->db->setActive(false);
Yii::app()->db->setActive(true);
// I also tried Yii::app()->db->active = true/false
$model = MyModel::model()->findByPk(10);
var_dump($model);
}
CdbConnection を使用してデータベースを切断して再接続するにはどうすればよいですか?