parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Скорее всего проблема с несколькими запросами одновременно...

Sumo 28.02.2012 10:22

Ваш код не учитывает тот факт, что к странице могут одновременно обратиться несколько пользователей. Т.е. между чтением и записью файла может произойти еще несколько операций чтения и/или записи, поэтому значение счетчика предугадать попросту невозможно. Налицо классическая race condition.

Исправить ситуацию можно двумя способами:
— Ставить блокировку через file:lock[tabb.lock]{чтение и запись tabb.txt}. Т.е. установить пессиместическую блокировку.
— Писать счетчик не в файл, а в куки пользователю. Тогда для каждого пользователя будет свой счетчик и проблема с «гонкой» будет не критична.

p.s. Tcnm еще вероятность, что браузер по какой-то причине дважды запрашивает страницу (может какой-то редирект в заголовках стоит или заголовок неверный).