Файл, подготовленный одним весенним пакетным заданием, недоступен для удаления другим - PullRequest
0 голосов
/ 17 мая 2019

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

Я пытался установить для записи значение true при создании файла. Запуск заданий в разное время (Запуск одного задания за раз). Попытался добавить "удалить" в качестве шага к той же работе, а также. Ничего не получалось. Я использую file.delete(). Также попробовал Files.deleteIfExists().

Я подозреваю, что первое задание не назначает надлежащие разрешения, но не знаю, как обойти это, установив разрешения в весеннем пакете

Ответы [ 2 ]

0 голосов
/ 18 мая 2019

Отвечая на мой вопрос ?. Надеюсь, это кому-нибудь поможет. Проблема заключалась в том, что последний ItemWriter удерживал ресурсы, потому что я использовал составной модуль записи. При использовании CompositeWriter beforeStep методы afterStep «скрыты». Вы должны называть их явно. Я выбрал подход, чтобы написать собственный писатель, который будет явно вызывать writer.close ().

Добавление метода afterStep и вызов super.close () также должны работать. Хотя у меня есть что-то подобное.

0 голосов
/ 17 мая 2019

Эти задания выполняются одним и тем же пользователем?т.е. тот же пользователь и права доступа?

Кроме того, что на самом деле сообщение об ошибке?Это говорит, что разрешения запрещены?Если это так, то скорее всего это ограничение ОС, а не ограничение Spring Batch / Java.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...