MiksIr
miksir@home:~$
Я бы на CAS делал, без всяких демонов.
Т.е. логика такая. И -> З - дай измененные записи, по флагу в базе З "изменен".
И заносит данные в свою базу и далее И -> З говорит "пометь такие то ID синхронизированными", но кроме ID передает еще время изменения записи (которое пришло от З на первом шаге).
З сверяет пришедшее время и время в базе, если равно - сбрасывает "изменен", если не равно - просто ничего не делает - эта запись изменилась в процессе синхронизации и будет синхронизирована следующим этапом.
Т.е. логика такая. И -> З - дай измененные записи, по флагу в базе З "изменен".
И заносит данные в свою базу и далее И -> З говорит "пометь такие то ID синхронизированными", но кроме ID передает еще время изменения записи (которое пришло от З на первом шаге).
З сверяет пришедшее время и время в базе, если равно - сбрасывает "изменен", если не равно - просто ничего не делает - эта запись изменилась в процессе синхронизации и будет синхронизирована следующим этапом.