Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 7, 2014 18:32:05

Dobrodel
Зарегистрирован: 2014-09-24
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск и запись данных в файл в многопользовательском режиме

Друзья, подскажите новичку
Есть такая задача - файл в текстовой форме лежит на сервере, необходимо организовать многопользовательский доступ к нему для поиска и добавления в него данных. Подскажите пожалуйста что лучше всего использовать и примерную схему организации работы с данными файла, по возможности с реальным кодом. Необходимо учесть, что в один и тот же момент к нему может обратиться несколько пользователей одновременно и попытаться изменить его…

Офлайн

#2 Дек. 7, 2014 21:18:51

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Поиск и запись данных в файл в многопользовательском режиме

Dobrodel
может обратиться несколько пользователей одновременно и попытаться изменить его
1. Классическая задача для баз данных… Почему они не подходят?
2. Если надо именно файл то нужны механизмы синхронизации. Например создать другой временный файл который будет означать залочивание изменяемого файла на запись. Реализация может содержать много подводных камней (например поведение при аппаратной перезагрузке сервера с файлом и его локом.) поэтому самостоятельно писать такие вещи новичку нежелательно.
3. Такого рода синхронизацию файлов осуществляют настроенные соответствующим образом системы контроля версий. (svn,git и т.п.)

пример вчерне (не пробовал могу где-то провраться смотрите документацию):
в директории нуждающейся в совместной модификации some_dir
git init
cd ..
git clone –bare some_dir /on/server/some_dir.git

далее в других местах
git clone /on/server/some_dir.git

далее синхронизация делается командами
git commit -a -m“asdas”
git pull origin master
git push origin master

ну и естественно разрешаете конфликты когда они возникнут

К питону это естественно не имеет ни малейшего отношения.



Отредактировано doza_and (Дек. 7, 2014 22:03:25)

Офлайн

#3 Дек. 9, 2014 11:57:47

Dobrodel
Зарегистрирован: 2014-09-24
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск и запись данных в файл в многопользовательском режиме

Благодарю за ответ.
Про базы данных понял, только тут такой вопрос - сервера как такового нет, есть много клиентов, которые обращаются к одному файлу где-то в сети (выше я условно назвал его сервером).
Подскажите как организовать, пусть и при помощи БД, подобную схему работы?

Офлайн

#4 Дек. 9, 2014 19:35:43

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Поиск и запись данных в файл в многопользовательском режиме

Dobrodel
для поиска и добавления в него данных
Если для поиска - открываете для чтения и читаете.
Если только добавление (без модификации старых данных) смотрите документацию по модулю logging.



Офлайн

#5 Дек. 9, 2014 19:48:03

Dobrodel
Зарегистрирован: 2014-09-24
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск и запись данных в файл в многопользовательском режиме

Благодарю

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version