Совместный доступ к конфигурации
Имеется GUI/CLI программа на Python - Chestnut Dialer. Файл конфигурации
пользователя представляет собой XML-файл, который загружается программой
при запуске. Загруженные данные хранятся в ОЗУ, и изменяются по команде
пользователя. Перед завершением программа сохраняет данные обратно в
этот XML-файл.
Такая схема не допускает нормальную работу программы при запуске
одновременно нескольких процессов, поэтому в данный момент используется
файл блокировки, и оповещение пользователя в виде сообщения об ошибке.
Нужно чтобы несколько процессов использовали конфигурацию совместно в
режиме Ч/З, с возможностью оповещения остальных процессов о сделанных
другим процессом изменениях в конфигурации.
Кто какие варианты предложит?
У меня пока только на уме отдельный сервер, обслуживающий все
процессы через unix domain socket. Может можно сделать как то получше
(читай проще :) ?
И еще пару вопросов. Я еще не работал с сокетами. Для обслуживания
нескольких процессов одновременно, нужно чтобы сервер имел несколько
потоков? Какой тип связи лучше использовать, датаграммы или поточное
соединение? А может вообще лучше использовать другой тип IPC? Или это
дело вкуса?
On Sat, 21 May 2005 23:12:12 +0300, Konstantin Korikov <lostcl***@u*****.fm> said:
[skip]
А может сохранять сразу после изменения? И добавить команду в меню -
перечитать конфиг. Тогда блокировку надо делать только для записи
и на время записи.
ИМХО тут он нафиг не нужен.
Необязательно.
Что лучше подходит для конкретной задачи. Для Unix Domain Sockets
передача датаграмм гарантируется (в отличие от UDP).
Не SysV IPC и не Sub RPC (IMHO). Использовать XML-RPC vs.
сокеты ИМХО дело вкуса.
HTH.