2010-02-05 1 views
1

У меня есть служба, которая управляет устройством RS-232 и регистрирует действия в файле. Я должен написать еще одну услугу, которая будет читать файл журнала по строкам и запускать некоторые запросы в базе данных, а затем удалять все журналы.Одна служба добавляет, а другая усекает файл

Моя забота о конфликтах чтения и записи в файле. Например, служба журнала открывает файл, чтобы добавить новую строку, в то же время служба репликатора открывает файл и записывает «», чтобы усечь его содержимое.

Любые предложения по разъяснению моей ситуации?

ответ

1

Как насчет того, чтобы изменить сервис «читать», чтобы сначала переименовать файл (ставить «_» перед ним - это то, что я обычно делаю). И тогда он может удалить его, когда будет сделано. Служба записи должна создать файл журнала, если он не существует. Таким образом, вы должны иметь нулевую потерю данных.

+0

Простой, мне он нравится. – frbry

0

Если вы не привязаны к использованию файла, прецедент предположил бы очередь сообщений для передачи ваших сообщений журнала.