У меня есть исполняемый файл JAR, который запускается для обработки файлов в исходном каталоге. При начале обработки файла он перемещается в каталог «обработка» и, наконец, перемещается в завершенный каталог.
Этот исполняемый файл JAR запускается с помощью задания cron
Проблема IСтолкнулись с тем, что выполняемые прогоны JAR перекрываются, т. е. один прогон не завершен, а второй прогон запущен.
Таким образом, одновременно выполняется 2 или более исполняемых jar-файла для обработки файлов из одного и того же исходного каталога.
Идея состоит в том, что файл перемещается в каталог «обработка». при выполнении исполняемого файла jar файл не будет виден другому исполняемому файлу jar, запущенному в исходном каталоге.
Однако, похоже, что 2 или более исполняемых jar-файла получают файл в исходном каталоге и начинают обработку файла. Следствием этого является то, что только один исполняемый jar-файл может завершить обработку файла, а другие, которые считали, что имеют эксклюзивный доступ к файлу, не работают, потому что файла больше нет.
Я используюFiles.move (srcPath, targetPath), предоставляемый в классе Files, который находится в пакете java.nio.file, для перемещения файлов между каталогами.
Любые предложения о том, как обеспечить, чтобы только один исполняемый jar-файл выполнял процесс aфайл за раз, пожалуйста?
Спасибо
Пит