Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Eugene Grosbein                      2:5006/1       01 Oct 2001  17:00:01
 To : Kabanov Alexey
 Subject : Re: счетчик
 -------------------------------------------------------------------------------- 
 
 
  KA> Имею самописный счетчик посещений:
 
 Пришло два коннекта почти в одно и то же время.
 
  KA> open(count, "<$counter");
 
 Две копии скрипта открыли файл, но один чуть раньше.
 
  KA> @count=<count>> ;
  KA>  foreach (@count) {
  KA>  if (/$slk=(\d*);/){$dob=$1+1;s|$slk=\d*;|$slk=$dob;|gi}}
  KA> close(count);
 
 Первый сделал что надо, и закрыл файл. А второго затормозил шедулер,
 к примеру.
 
  KA> open(countout, ">$counter");
  KA> flock(countout, LOCK_EX);
  KA> print countout @count;
  KA> close(countout);
 
 Первый переписал файл и завершился. Проснулся второй.
 Переписал файл сам, затерев информацию и предыдущем коннекте.
 
  KA> Вызываю его как картинку с защитой от кеширования.
  KA> Hо посещения засчитываются не все (сравнил его показания с счетчиком
  KA> топ-лист) Скажите пожалуйста, что ему не хватает для учета ВСЕХ посещений?
 
 Открывать файл на чтение-запись один раз, блокировать, читать-писать,
 закрывать.
 
 Eugene
 -- 
 "Люди забыли эту истину," - сказал Лис, - "но ты не забывай"
 --- slrn/0.9.7.0 (FreeBSD)
  * Origin: SVZ-Service (2:5006/1@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: счетчик   Eugene Grosbein   01 Oct 2001 17:00:01 
Архивное /ru.cgi.perl/26093225d87d2.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional