У меня есть веб-приложение, которое используется компанией для регистрации работы своих сотрудников.Каков наилучший способ обработки «Предупреждение: 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'));}' в bootstrap.php – biakaveron
@biakaveron: по какой причине?Это статический полиморфизм, поэтому я только что преодолел метод. – zerkms