Запуск одной копии скрипта на одного пользователя

  • Автор темы barracuda477
  • Дата начала

barracuda477

Guest
Запуск одной копии скрипта на одного пользователя

Дано: Есть некий скрипт abc.php, на вход которого подаётся ID пользователя, вызывающего этот скрипт.
Необходимо выполнить условие: в каждый момент времени допустимо выполнение только _одного_ скрипта abc.php
для пользователя с данным ID.
Делал блокировку вручную через своё поле в БД MySQL. Поле содержит значение unixtime запуска скрипта
(если значение поля=0 - скрипт отработал). При запуске скрипт проверяет разницу текущено unixtime и значения
unixtime, записанного в указаном поле. Далее скрипт выполняет холостой цикл пока разница меньша
некоторого значения TIMEOUT (стоит 10 сек);
Вроде должно работать, ан нет. Бывают ситуации когда клиента просто прорывает (вероятнее всего скапливаются
запросы на каком-то гейте).
Вопросы 1) Возможно ли такое, что MySQL как-то буферизирует SQL-запросы ? Если да - как отключить или сделать flush ?
Вопросы 2) Какие ещё варианты решения есть ?
 

Кром

Новичок
>Далее скрипт выполняет холостой цикл пока разница меньша
некоторого значения TIMEOUT (стоит 10 сек);

Про цикл, это, конечно, сильно. :)
По идее он не нужен вообще. Тебе нужно проверять значение времени и если какой-то там скрипт еще работает, ничего не делать.
А у тебя получается, что клиент жмет кнопку, десятки копий скрипта висят в памяти, а потом начинает происходить вообще неизвестно что. Пользователь забыл уже о том что он там нажимал, а твои скрипты только начинают выполняться.
 

barracuda477

Guest
:)

1) как используя голый PHP узнать что какой-то скрипт ещё работает ?
2) реально получается, что на сервак приходит от одного чувака 2-3 запроса на выполнение скрипта одновременно. А этот скрипт должен выполнить их последовательно, а не паралельно.

-~{}~ 08.04.05 11:03:

в догонку...
Это реальная ситуация, и случается она примерно раз в 8-20 часов
 

Кром

Новичок
> как используя голый PHP узнать что какой-то скрипт ещё работает ?

Эта тема уже обсуждалась не раз. Ищи по форму.
 

stalxed

Новичок
>Эта тема уже обсуждалась не раз. Ищи по форму.
Я вот найти таковой темы не могу, может пожалуйста подкинешь линьку?
 
Сверху