imho.ws |
![]() |
![]() |
![]() |
# 1 |
Full Member
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
PHP работа с базой в долгом скрипте
Решил я прикрутить к закачке файлов регулятор скорости и статистику.
Статистика пишется в базу (количество отданых данных, время обновления). Пишется после выдачи определённого количества трафика. Чтобы слишком много запросов к базе небыло. Регулятор скорости соответственно добавляет команду sleep. Наткнулся на интересную проблему. При определённых настройках получается запись в базу примерно каждые 120 секунд. За это время связь с базой теряется и ничего не пишется. Попытки создать новые объекты базы не помогают. Если запись получается примерно каждые 90 секунд или быстрее - всё рабоатет. Проблема наблюдается только на сервере. На локалке с денвером всё работает. Как это забороть можно? |
![]() |
![]() |
# 3 |
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Во время коннекта в флагах можно передать какой из таймаутов использовать, а его в свою очередь задать в настройках.
http://www.php.net/manual/en/mysql.c...l.client-flags http://php.net/manual/en/function.my...nect.php#34742
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
![]() |
![]() |
# 4 | ||
Full Member
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Цитата:
Мой скрипт использует PEAR пакеты. Для базы - DB_DataObject http://pear.php.net/package/DB_DataObject/redirected В коде нет прямого управления созданием коннекта. Через mysql_ping() и параметр connection объекта я написал восстановление соединения. |
||
![]() |
![]() |
# 5 | ||
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Затем, первым выполнить установку параметра в секундах, как-то так: SET INTERACTIVE_TIMEOUT = somevalidnumber ; По идее должно работать, сам не проверял. Можно попробовать сделать то же самое и с wait_timeout. В общем надо пробовать. Цитата:
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
||
![]() |