Итак, я нахожусь в ситуации, когда один процесс непрерывно (через каждые несколько секунд) записывает данные в файл (не добавляя). Данные в форме JSON. Теперь другой процесс должен читать этот файл через равные промежутки времени. Теперь может случиться так, что процесс чтения читает его, пока процесс записи пишет в файл.
Решение этой проблемы, о которой я могу подумать, состоит в том, чтобы процесс записи также записал соответствующий файл контрольной суммы. Теперь процесс чтения должен будет прочитать и файл, и его файл контрольной суммы. Если вычисленная контрольная сумма не совпадает, процесс считывателя будет повторять процесс, пока вычисленная контрольная сумма не совпадет. Таким образом, теперь он будет знать, что он прочитал правильные данные.
Или, возможно, лучшим решением будет прочитать файл дважды после определенного периода времени (намного меньше, чем интервал записи в процессе записи) и посмотреть, совпадают ли прочитанные данные.
Третий способ - записать некоторые магические данные в конец файла, чтобы процесс чтения знал, что он прочитал весь файл, если он принял эти магические данные в конце.
Что ты думаешь? Являются ли эти решения жизнеспособными, или есть лучшие методы для достижения этого?