我有一個公司用來記錄員工工作的Web應用程序。什麼是處理「警告:mysql_connect():與Kohana 3太多連接」的最佳方式是什麼?
很多人經常登錄。
該應用程序在共享主機上運行。
我有時會收到...
警告:mysql_connect()函數[function.mysql-連接]:太多的連接
,然後讓更多的錯誤級聯......像有錯誤mysql_select_db()
,mysql_error()
,mysql_errnon()
,最後是未捕獲的Database_Eexception
。
當我運行我的主要請求時,我將它包裝在try
中,並捕獲任何異常並顯示找不到頁面。這是因爲如果找不到資源(儘管路由可能是有效的),我的控制器通常會拋出異常,例如http://example.com/products/30
是有效的路線,但產品#30不存在。
什麼是最好的方式來處理太多的連接?理想情況下,我想分別捕獲該例外情況,然後顯示一個不錯的頁面,通知員工在5分鐘內再次嘗試。
運行我的application/bootstrap.php
主請求看起來像這樣的代碼...
$request = Request::instance();
try {
$request->execute();
} catch (Exception $e) {
if (Kohana::$environment === Kohana::DEVELOPMENT) throw $e;
// Log the error
Kohana::$log->add(Kohana::ERROR, Kohana::exception_text($e));
// Create a 404 response
$request->status = 404;
$request->response = Request::factory(Route::get('catch_all')->uri(array('path' => 'errors/404')))->execute();
}
$request->send_headers();
echo $request->response;
感謝您的幫助!
可能你應該使用'set_exception_handler()'而不是改變系統核心類邏輯?就像'if(Kohana :: DEVELOPMENT!== Kohana :: $ environment){set_exception_handler(array('Kohana','exception_handler'));}'in bootstrap.php – biakaveron 2010-11-16 08:13:35
@biakaveron:爲什麼?它是一個靜態多態 - 所以我只是重寫一個方法。 – zerkms 2010-11-16 10:10:00