Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Нужна идея по разбору файлов / 14 сообщений из 14, страница 1 из 1
04.03.2016, 11:28
    #39185755
roma126
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по разбору файлов
Всем доброго времени суток!
Нужна идея как лучше сделать следующее:
На сервер linux поступают xml файлы, содержимое которых нужно парсить и кидать в таблицы oracle. Как отслеживать поступление новых файлов, возможно есть у кого-нибудь нечто реализованное.
Заранее спасибо!
...
Рейтинг: 0 / 0
04.03.2016, 11:39
    #39185767
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по разбору файлов
roma126,
ты видишь проблему каждые n сек проверять папку на файлы?
...
Рейтинг: 0 / 0
04.03.2016, 11:40
    #39185770
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по разбору файлов
roma126На сервер linux поступают xml файлы
Баба маня в ведре приносит?
...
Рейтинг: 0 / 0
04.03.2016, 11:47
    #39185780
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по разбору файлов
...
Рейтинг: 0 / 0
04.03.2016, 11:50
    #39185786
roma126
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по разбору файлов
Garrick, nio Это идея, спасибо!
...
Рейтинг: 0 / 0
04.03.2016, 15:07
    #39185989
bl_beard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по разбору файлов
roma126,

есть jnotify .
Конечно давно не обновлялась, но может вызовет интерес.

есть еще Apache Common IO File monitor
не пользовался, но может пригодится.
...
Рейтинг: 0 / 0
04.03.2016, 17:39
    #39186130
chabapok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по разбору файлов
roma126,

Игрался я с ватчером этим. В качестве тренировки делал прожку для архивирования измененных бинарников.
Штука полезная, но есть там 1 крупный недостаток - если ты пишешь в директорию большой файл, то событие "что-то поменялось" приходит до того, как весь файл будет залит окончательно. Конечно, это событие приходит и после окончательной заливки. Но ты, получив событие ENTRY_MODIFY не знаешь категорию события. То ли файл уже записан весь, то ли еще пишется.

А раз ты этого не знаешь, нужен дополнительный механизм, который это решает. Ну вот в моем случае проверялось условие, что в течении заданного времени больше изменений файла не было. Тогда прожка считала, что изменений больше не будет - и делала копию директории.
И дальше вопрос - а какое время задавать? Если ты копируешь мелки файлы - то одно, а если ты заливаешь по ssh гигабайтовые файлы, да еще если сеть поганая, это время надо ставить больше.

вы можете пытаться парсить xml. Если парсится - все ок. Если не парсится, то или ошибка синтаксиса, или неполный xml.
...
Рейтинг: 0 / 0
04.03.2016, 17:50
    #39186135
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по разбору файлов
Чаще всего подобные Jobs пишутся вообще без ватчеров.
Достаточно признака того что файл прогружен. И признака
того что он окончательно сформирован (последний тег закрыт).
...
Рейтинг: 0 / 0
04.03.2016, 18:16
    #39186148
grasoff.net
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по разбору файлов
пишется файл, а следом его md5-хэш
...
Рейтинг: 0 / 0
04.03.2016, 19:10
    #39186170
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по разбору файлов
Если упрощать, то достаточно после основного слать файл 0 байт. Т.к. в одном потоке все.
Принимающая просто читает список файлов в папке.
...
Рейтинг: 0 / 0
04.03.2016, 20:47
    #39186223
chabapok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по разбору файлов
grasoff.netпишется файл, а следом его md5-хэш

Для больших файлов md5 придется много раз пересчитывать. Это плохо. Частично решит проблему выбор такого алгоритма контрольной суммы, который позволяет "доскормить" новые данные в существующий калькулятор суммы. Только все равно криво это как-то.

Тогда уж как-то так: в имени файла содержится его длина. Если файл очень долго лежит и не меняется - значит при записи был обрыв, если длина больше заялвенной - то тоже подозрительно, а если длина стала равна заявленной, то можно пытаться парсить.
...
Рейтинг: 0 / 0
05.03.2016, 00:50
    #39186286
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по разбору файлов
Думаю что развитие этой идей плавно перейдет в разработку своего rsync.
...
Рейтинг: 0 / 0
05.03.2016, 01:11
    #39186288
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по разбору файлов
roma126Всем доброго времени суток!
Нужна идея как лучше сделать следующее:
На сервер linux поступают xml файлы, содержимое которых нужно парсить и кидать в таблицы oracle. Как отслеживать поступление новых файлов, возможно есть у кого-нибудь нечто реализованное.
Заранее спасибо!

Spring Batch, Spring Integration
...
Рейтинг: 0 / 0
08.03.2016, 20:07
    #39187626
grasoff.net
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна идея по разбору файлов
chabapokДля больших файлов md5 придется много раз пересчитыватьзачем?

пишется файл test.txt
ожидается файл test.txt.md5
как только test.txt.md5 появился - пересчитали, сравнили и всё
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Нужна идея по разбору файлов / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]