Нажмите на файл, используя apache FileUtils - PullRequest
2 голосов
/ 25 августа 2010

Я посмотрел исходный код класса Apache Commons FileUtils.java, чтобы увидеть, как они реализуют Unix, такие как сенсорные функции.Но я хотел подтвердить здесь сообществу, будет ли мой вариант использования удовлетворяться реализацией при открытии и закрытии FileOutputStream для обеспечения сенсорной функциональности

У нас есть два веб-сервера и один общий сервер между ними, где находится файлresiding

Для нашего приложения нам нужно использовать время, измененное в этом файле, для принятия некоторых решений.На самом деле мы не хотим изменять файл, а изменяем дату его последнего изменения, когда на одном из веб-серверов происходит какое-то конкретное действие.

Важно, чтобы время последнего изменения, установленное для файла, было взято с центрального сервера нане беспокойтесь о разнице во времени между двумя веб-серверами.Поэтому изменение file.setLastModfiied не является хорошим вариантом, поскольку веб-сервер отправляет свое время.

Но мне интересно, что даже если бы я использовал для этого сенсорный метод Apache Commons FileUtils, при закрытии потока на одном веб-сервере было установлено время последнего изменения файла с использованием времени веб-сервера или центрального сервера.

Извините за столько подробностей, но не смог найти другого способа объяснить проблему

Ответы [ 2 ]

2 голосов
/ 25 августа 2010

Если вы «дотронетесь» до файла в файловой системе одного веб-сервера, то временная метка файла будет установлена ​​с использованием часов этого сервера. Я не думаю, что вы можете решить свою проблему таким образом.

Я думаю, у вас есть три варианта:

  • настроить серверы для синхронизации их часов с общей базой времени; например используя NTP,
  • поместите все файлы, временные метки которых должны быть точными на общую временную базу на одном сервере, или
  • Измените дизайн вашей системы так, чтобы он был невосприимчив к проблемам с синхронизацией различных серверов.
0 голосов
/ 25 августа 2010

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

...