Мистическая проблема php - дублируются sql-запросы при сильной нагрузке на скрипт |
LovinGOD 03/08/12 05:01 |
Ничто не предвещало беды, проект, практически закончен, и вот...
Есть php скрипт с mySQL. Что он делает.
1. Создаёт нового пользователя в таблице users 2. Создаёт новую запись в таблице-каталоге вопросов (id, дата, id юзера) 3. Вызывает 40 функций, которые создают картинки, грузят текстовые файлы, парсят их... В max_execution_time это укладывается - порядка 5 секунд занимает. 4. Выполняет 3 SQL-запроса по засовыванию результатов работы п.3 в третью таблицу с данными.
Проблема в чём: пп.1 и 2, кажется, выполняются от 2 до 5 раз. А точнее, по окончании работы скрипта создаётся до 5 пользователей и до 5 новых записей в каталоге вопросов. П.4 иногда не срабатывает вообще.
Создаётся такое ощущение, что скрипт как бы 2-5 раз успевает проработать, пока вызываются те самые тормозные функции из п.3.
Впрочем, это можно обойти, выделив п.3 в отдельный скрип, но это через задницу и, всё равно, как-то очень странно.
Это уже второй раз, когда я сталкиваюсь с подобной проблемой. Она ещё периодически возникает в моих новостных лентах - иногда - в 1-2 случаев из 100, или реже, выпускаемая новость или статья выходит дважды, как-будто скрипт запустили 2 раза. Причём не помогает даже отсев по дублирующемуся тексту.
Вы с таким сталкивались? Мистика какая-то. По крайней мере, не вижу проблем в самом коде, и ИНОГДА ничего подобного не случается.
|
|
|
|