Есть mvc, запрос идет на index, оттуда запускается router, в нем первым делом вызывается функция, прибавляющая к значению файла 1, если счетчик выше 100 - ложиться спать на секунду, ничего не прибавляет и вновь вызываться. Позже прямо перед exit() стоит функция, убавляющая от счетчика в файле 1.
Во-первых, когда я открываю страницу напрямую в браузере (хром) он прибавляет 3 раза 1 и 2 раза отнимает 1.
Во-вторых, при многопоточном запросе с js 10 раз счетчик вообще уходит в -2. Нигде больше эти функции не вызываются, при том из тех 10 не во всех счетчик мне голову ломает, где-то разница между счетчиком в начале и в конце в 1 единицу как и должно быть. Что за чудо такое?
Прибавление$count = intval(file_get_contents('count.txt'));
if ($count > 100) {
sleep(1);
$this->count();
} else {
$count++;
file_put_contents('count.txt', $count);
$count = intval(file_get_contents('count.txt'));
echo 'startCount: '.$count;
return true;
}
Убавление$count = intval(file_get_contents('count.txt'));
$count--;
file_put_contents('count.txt', $count);