2012-03-22 3 views
2

Я использую компонент tWaitForFile из проекта Talend Studio Project, и я хочу знать, есть ли способ убедиться в том, что файл должен запускать событие, когда этот файл полностью записан на диск.Talend studio tWaitForFile issue

Я попытался установить расширенное свойство: «Подождите, пока файл будет выпущен» , но кажется, что это бесполезно, файл запускает компонент, даже если он еще не закончен для передачи.

Есть ли у кого-то одинаковое поведение и решение исправить это?

Версия Tos является: 4.2.3

ответ

4

Продвинутая настройка «Подождите, пока файл будет выпущен» работает только на Windows. Это не влияет на Unix, что, вероятно, объясняет, почему это не сработало для вас.

Как правило, сложно или даже невозможно, чтобы процесс Unix выяснял, был ли файл написан полностью или нет. Следовательно, в Talend нет простого способа сделать это.

(Например, если вы хотите, чтобы ждать, пока размер файла не изменяется больше - как долго вы ждете?)

Общее решение включает в себя процесс писать в файл: Создать файл под другим именем, и когда он будет написан полностью, переименуйте его в имя, которое ожидает другой процесс. Таким образом, он будет отображаться в полном объеме немедленно.

+2

Спасибо! Я не знал, что функция доступна только в Windows. Наконец, я сделал что-то похожее на ваше решение в качестве обходного пути: я переношу большой zip-файл, а затем, когда он закончен, я переношу управляющий файл, который просто содержит имя zip. Другая работа Talend с tWaitForFile ждет файла управления и не больше в zip-файле. –