![]() |
PHP работа с базой в долгом скрипте
Решил я прикрутить к закачке файлов регулятор скорости и статистику.
Статистика пишется в базу (количество отданых данных, время обновления). Пишется после выдачи определённого количества трафика. Чтобы слишком много запросов к базе небыло. Регулятор скорости соответственно добавляет команду sleep. Наткнулся на интересную проблему. При определённых настройках получается запись в базу примерно каждые 120 секунд. За это время связь с базой теряется и ничего не пишется. Попытки создать новые объекты базы не помогают. Если запись получается примерно каждые 90 секунд или быстрее - всё рабоатет. Проблема наблюдается только на сервере. На локалке с денвером всё работает. Как это забороть можно? |
php.net/mysql_ping
|
Во время коннекта в флагах можно передать какой из таймаутов использовать, а его в свою очередь задать в настройках.
http://www.php.net/manual/en/mysql.c...l.client-flags http://php.net/manual/en/function.my...nect.php#34742 |
Цитата:
Цитата:
Мой скрипт использует PEAR пакеты. Для базы - DB_DataObject http://pear.php.net/package/DB_DataObject/redirected В коде нет прямого управления созданием коннекта. Через mysql_ping() и параметр connection объекта я написал восстановление соединения. |
Цитата:
Затем, первым выполнить установку параметра в секундах, как-то так: SET INTERACTIVE_TIMEOUT = somevalidnumber ; По идее должно работать, сам не проверял. Можно попробовать сделать то же самое и с wait_timeout. В общем надо пробовать. Цитата:
|
Часовой пояс GMT +4, время: 17:25. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.