我有一个公司用来记录员工工作的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