SergeCpp
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Ajaja <когда нет четко заданной пары source и destination и все синхронизируемые каталоги (их может быть куча) ... и сам атрибут Archive вряд ли может быть применен к месту.> Да, именно. Именно для такой специфики я и писал эту микро-программу. Тот расширенный пример, что находится в файле SYNC.TXT, очень близко описывает ситуацию. "Чётко заданные пары source и destination" конечно же есть, но суть в том, что для одного source было несколько destination, см. в том же файле разделы "distribute from Server" и "back on Clients". В файле описано упрощённо, на деле же каждая машина из десятка-двух была "сервером" (в терминологии файла SYNC.TXT) и как собирала важные данные со всех других компьютеров так и распределяла их. Это опять же упрощённо, там, если чуть уточнить, был "каталог-резервуар" для файлов, записываемых другими машинами на эту и "каталог-резервуар" для файлов, которые эта машина сама берёт с других (с тех же). Мульти-копирование было многократным, так, чтобы в случае, если ВСЕ машины, кроме ОДНОЙ, "совсем сломаются", эти важные файлы -- для ВСЕХ машин -- можно было бы взять с этой одной. А, так как на каждой машине было несколько таких "каталогов-резервуаров", то и там -- мультиплициролвалось. === Один "каталог-резервуар", если условно, выглядел так: \Repair \Repair\A -- это машина A \Repair\B -- это машина B \Repair\C -- это машина C и так далее, там ещё подкаталоги были. === Атрибут тут не может быть использован как "маркер изменённого файла", потому что его же нужно сбрасывать, чтобы установить состояние файла как "синхронизирован"/"резервирован". А при нескольких destinations -- когда? Если же его не сбрасывать, то он и совсем выходит не нужен -- константно установлен получается. Нечто в этом есть схожее с понятием "идемпотентность", а, скорее, оно и есть. Если взять атрибут источника как маркер, то он этим свойством не обладает -- после "выполнения своей работы" он изменяется. Время (и размер) же этим свойством обладает -- после "выполнения своей работы" оно остаётся прежним. Конечно, здесь имеется в виду, что сам источник-файл не изменился при выполнении работы, то есть синхронизация завершена полностью до очередного изменения источника. === На каждой машине работала ОДНА программа -- 10 потоков, которые постепенно отключались, если копировать нечего (и постепенно включались-создавались при появлении работы). При моих настройках (что по умолчанию в EXE) всё копирование занимало несколько часов, так как файлы были в основном маленькие. Это всё кратко, да и подзабываю я уже детали, всё же много времени прошло. Кому и пригодится всё это. | Всего записей: 572 | Зарегистр. 27-07-2005 | Отправлено: 03:30 09-01-2014 | Исправлено: SergeCpp, 03:40 09-01-2014 |
|