Мой текущий код, чтобы ограничить доступ по одному через несколько сценариев PHP на Linux.
## preprocssing
$fp = fopen("lock.txt", "r+");
flock($fp, LOCK_EX);
#
## exclusive access to resource. takes about 2 seconds.
## must be performed one at a time.
#
flock($fp, LOCK_UN);
## post processing
Это хорошо работает для предотвращения столкновений. Проблема в том, что flock LOCK_EX НЕ является fifo, так как клиенты не получают блокировку в порядке запроса. Некоторые клиенты будут ждать более минуты, в то время как другие получат доступ через секунду или две.
Итак, я ищу относительно простой и быстрый способ улучшить Diffoness в этом скрипте, не усложняя его, добавляя базы данных или внешние вызовы.
Любые предложения о том, что посмотреть?
Задача ещё не решена.
Других решений пока нет …