У меня есть ситуация, когда два java-приложения просматривают каталог для входящего файла. Скажем, есть каталог DIR, который отслеживается двумя процессами JVM для любых файлов с расширением .SGL.
Проблема, с которой мы здесь сталкиваемся, заключается в том, что иногда оба узла уведомляются о новых файлах, и оба узла пытаются обработать один и тот же файл.
Обычно мы справляемся с такими ситуациями, используя базу данных, которая пытается вставить в таблицу столбец с уникальным именем файла, и только одна из них преуспеет и продолжит обработку.
Но для этой ситуации у нас нет базы данных.
Каков наилучший способ справиться с такими проблемами? Можем ли мы полагаться на решения по переименованию файлов? Является ли переименование файлов атомарной операцией?