The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Модификация файлов"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Модификация файлов"
Сообщение от SergeyD emailИскать по авторуВ закладки on 23-Дек-02, 12:43  (MSK)
  Добрый день, знатоки.

  Как правильнее решать задачу контроля за юзерами мелкого провайдера. Сейчас все данные о юзерах лежат в текстовом файле и каждому юзеру отведена одна запись. При входе его в систему файл считывается и определяется можно ли его пропускать. Практически все скрипты только читают эту базу, не изменяя информации. Исключение - скрипты добавления (удаления) юзеров и времени.
   Все операции по смене данных производятся так - файл полностью считывается в память, модифицируется и записывается в сторонке под временным именем. Затем скрипт пытается заменить старый файл на новый, пока это ему не удасться.
   Все бы ничего, но иногда возникает ситуация, когда данные в файл не записываются. Происходит это редко и в случайные моменты времени. Но беспокоит.
   Отсюда и вопрос - что делать ? Я пока вижу такие варианты - добавить в скрипты принудительный сброс буферов на диск, использование floc() и вообще переход к какой нибудь СУБД.
    Что посоветуете?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Модификация файлов"
Сообщение от konst emailИскать по авторуВ закладки on 23-Дек-02, 14:28  (MSK)

>   Все операции по смене данных производятся так - файл
>полностью считывается в память, модифицируется и записывается в сторонке под временным
>именем.

Это временное имя стандартное или каждый раз новое ?
Из-за этого наверно "данные в файл не записываются"

Если данные регулярно модифицируются - лучше использовать БД.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Модификация файлов"
Сообщение от SergD emailИскать по авторуВ закладки on 24-Дек-02, 15:25  (MSK)
>Это временное имя стандартное или каждый раз новое ?

   Именно что стандартное.

> Из-за этого наверно "данные в файл не записываются"
>
>Если данные регулярно модифицируются - лучше использовать БД.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: Модификация файлов"
Сообщение от konst emailИскать по авторуВ закладки on 24-Дек-02, 17:04  (MSK)
>>Это временное имя стандартное или каждый раз новое ?
>
>   Именно что стандартное.
Т.е. Есть 1) file   2) tmp-file
Если при каждом изменении file
переписывается tmp-file = то в случае когда tmp-file не успел переписаться > file, данные теряются
Если не использовать БД, то
1) сравнивать mtime file == tmp-file и пока != - не трогать  tmp-file
или
2) переименовывать tmp-file в  file, и не создавать новый tmp-file if (-f tmp-file)
$check = 1;
while ($check) {
(-f tmp-file) && next ;
rename(tmp-file,file) && $check = 0;
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: Модификация файлов"
Сообщение от Jelis emailИскать по авторуВ закладки on 09-Янв-03, 20:37  (MSK)
>  Добрый день, знатоки.
>
>  Как правильнее решать задачу контроля за юзерами мелкого провайдера. Сейчас
>все данные о юзерах лежат в текстовом файле и каждому юзеру
>отведена одна запись. При входе его в систему файл считывается и
>определяется можно ли его пропускать. Практически все скрипты только читают эту
>базу, не изменяя информации. Исключение - скрипты добавления (удаления) юзеров и
>времени.
>   Все операции по смене данных производятся так - файл
>полностью считывается в память, модифицируется и записывается в сторонке под временным
>именем. Затем скрипт пытается заменить старый файл на новый, пока это
>ему не удасться.
>   Все бы ничего, но иногда возникает ситуация, когда данные
>в файл не записываются. Происходит это редко и в случайные моменты
>времени. Но беспокоит.
>   Отсюда и вопрос - что делать ? Я пока
>вижу такие варианты - добавить в скрипты принудительный сброс буферов на
>диск, использование floc() и вообще переход к какой нибудь СУБД.
>    Что посоветуете?

A u tebja dva skripta odnovremenno mogut zapuskatsja?

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру