Как очистить ресурсы в Spring Webflow?

У меня есть приложение Spring Webflow. В одном состоянии просмотра пользователь может загрузить файл на сервер. По умолчанию файл создается Apache Trinidad временно только для области запроса. Поэтому я копирую его по другому пути на сервере, потому что на следующем шаге нам нужно подтверждение пользователя. После копирования файл сохраняется на диске сервера и имеет ссылку .

<!-- This variable holds server File path
<var name="uploadFO" class="com.company.whateverUploadFO" />
...
<!-- User uploads file here in <tr:inputFile> element -->
<view-state id="view" view="/flow/upload.xhtml">
    <transition on="reset" to="deleteFile"/>
    <transition on="start" to="startProcessing"/>
</view-state>

В обычном потоке файл будет удален явно. Но существует проблема. Что делать, если пользователь закрывает браузер после загрузки и до подтверждения? Файл останется на диске сервера "навсегда". Как я могу предотвратить это? Как я могу зарегистрировать некоторый метод очистки, вызываемый, когда пользователь отказывается от потока? Спасибо


person Gondy    schedule 30.06.2015    source источник


Ответы (1)


Когда пользователь выходит из своего браузера, конечное состояние не вызывается. Поэтому невозможно удалить его красиво, когда он выходит из своего браузера. Вы могли бы использовать задание, которое очищает ваши ресурсы каждую минуту/час/день/... или, может быть, вам следует переосмыслить свое решение и удалить файл сразу после его загрузки?

person Tom Jonckheere    schedule 30.06.2015