Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / получения данных из потока в сервлете / 21 сообщений из 21, страница 1 из 1
06.06.2017, 20:56
    #39467307
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
здравствуйте всем!
уважаемые хотел узнать ваши мнения по поводу нескольким вопросам.

Есть внешнее приложение (условно назову П1) , слушает папку out. Есть новое серверное приложение(П2), обслуживает веб-клиентов, которое и пишет «запросы»(от клиентов (приходят по ajax) в эту папку, ответы П1 помещает в папку in.

В П2 для прослушивания папки in используется с вотч сервис апи, он запускается в отдельном потоке при старте приложения П2. С появлением файла в папке он его читает и должен передать данные во вью. Вопрос - как в сервлете получить данные из потока — прочитанный файл.

со временем могут возникать и другие вопросы... :)

З.Ы. заранее всем спасибо! :)
...
Рейтинг: 0 / 0
06.06.2017, 21:28
    #39467324
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
Музаффар,
- если ответ долгий, то почему не писать и читать из базы?
0 если быстрый, то почему П1 не может спросить П2 по url(rest)?
...
Рейтинг: 0 / 0
06.06.2017, 21:30
    #39467326
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
Petro123,

ну как бы П1 из далеких 70х и там не были такие понятия как рест и т.д. даже там все хранятся в файлах... вот по этому
...
Рейтинг: 0 / 0
06.06.2017, 22:26
    #39467362
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
Музаффар,
там выше был вопрос. Сколько занимает ответ П70
?
...
Рейтинг: 0 / 0
07.06.2017, 06:47
    #39467459
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
Petro123,

исходя из ситуации от каких то секунд до исправления аварии
...
Рейтинг: 0 / 0
07.06.2017, 06:56
    #39467466
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
Музаффар Вопрос - как в сервлете получить данные из потока — прочитанный файл.

Эти данные нужно поместить в какое либо общее хранилище - базу данных, синглтон, статическую переменную, временный файл и т.п.
Надежнее всего в БД.
...
Рейтинг: 0 / 0
07.06.2017, 07:00
    #39467469
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
Музаффарздравствуйте всем!
уважаемые хотел узнать ваши мнения по поводу нескольким вопросам.

Есть внешнее приложение (условно назову П1) , слушает папку out. Есть новое серверное приложение(П2), обслуживает веб-клиентов, которое и пишет «запросы»(от клиентов (приходят по ajax) в эту папку, ответы П1 помещает в папку in.

В П2 для прослушивания папки in используется с вотч сервис апи, он запускается в отдельном потоке при старте приложения П2. С появлением файла в папке он его читает и должен передать данные во вью. Вопрос - как в сервлете получить данные из потока — прочитанный файл.

со временем могут возникать и другие вопросы... :)

З.Ы. заранее всем спасибо! :)

Ну...
Быстро, просто и не совсем правильно -
На веб клиенте пишется скрипт, который по таймауту делает запросы на сервлет.
Который проверяет папку in и выдает результат.

Чуть сложнее, это ч/з websocket.

:-)
...
Рейтинг: 0 / 0
07.06.2017, 07:10
    #39467474
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
BlazkowiczЭти данные нужно поместить в какое либо общее хранилище - базу данных, синглтон, статическую переменную, временный файл и т.п.
Надежнее всего в БД.

да об этом и думаю т.е. класс который прослушивает папку должен писать при получении запишет в базу правильно ли понял?

mad_nazgulНу...
Быстро, просто и не совсем правильно -
На веб клиенте пишется скрипт, который по таймауту делает запросы на сервлет.
Который проверяет папку in и выдает результат.

Чуть сложнее, это ч/з websocket.

не будем пойти по неправильной дорожке :)
да про вс тоже думаем... :)
...
Рейтинг: 0 / 0
07.06.2017, 09:30
    #39467520
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
Музаффарда об этом и думаю т.е. класс который прослушивает папку должен писать при получении запишет в базу правильно ли понял?

Да. Ведь вам, наверняка нужна целая очередь. Что если легаси приложение успеет обработать множество файлов, а сервлет никто ниразу не вызовет? Даже если нужен только последний файл, никогда не знаешь вдруг понадобится история.
...
Рейтинг: 0 / 0
07.06.2017, 09:44
    #39467533
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
Музаффар,
идеально, убрать анахронизм in\out папки и писать в базу обоими приложениями.
...
Рейтинг: 0 / 0
07.06.2017, 09:47
    #39467536
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
BlazkowiczМузаффарда об этом и думаю т.е. класс который прослушивает папку должен писать при получении запишет в базу правильно ли понял?

Да. Ведь вам, наверняка нужна целая очередь. Что если легаси приложение успеет обработать множество файлов, а сервлет никто ниразу не вызовет? Даже если нужен только последний файл, никогда не знаешь вдруг понадобится история.


+10
Рано или поздно заказчик попросит историю. Т.е. сначала в ТЗ конешно пропишут самый простой алгоритм типа как появились данные так отправь но про историю все равно вспомнят. Типа тут у нас косяк прозошел сеть упала, диск посыпался, данные криво сели
будьте любезны дайте как отчет когда какие данные ушли или не ушли нас с..по нужны данные, мы проверить хотим.
...
Рейтинг: 0 / 0
07.06.2017, 09:53
    #39467541
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
Petro123Музаффар,
идеально, убрать анахронизм in\out папки и писать в базу обоими приложениями.
Он же сказал, там легаси приложение. Переписать его возможности нет. Вполне классическая ситуация интеграции с древним говном.
...
Рейтинг: 0 / 0
07.06.2017, 10:04
    #39467550
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
МузаффарзВ П2 для прослушивания папки in используется с вотч сервис апи, он запускается в отдельном потоке при старте приложения П2 .
...
Вопрос - как в сервлете получить данные из потока — прочитанный файл.

Вот тот кто так сделал и должен ответить на этот вопрос - а на поркуа он так поступил. :)

Вкратце, вопрос простой. Убедился что файл появился (и дозаписался) создаешь отметку в синглтоне уровня приложения (можно и в БД). Дальше все зависит от модели взаимодействия с клиентом. Синхронные сервлеты просто просматривают его (собственно могут и сам каталог с файлами, им по хорошему watch не нужен, но раз уж сделали - не выкидывать же) на предмет готовности ответа. Асинхронные (в т.ч. websocket,push и прочее) подписываются на событие изменения (или просто периодически, в этом случае правда, опять же watch то зачем) сканируют его на предмет присутствия нужного им ответа и отправляют пользователю.

Ответ же на прямой вопрос, как input stream из фала перенаправить в output stream сервлета - Гугл в помощь. :)
...
Рейтинг: 0 / 0
07.06.2017, 10:13
    #39467559
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
BlazkowiczОн же сказал, там легаси приложение. Переписать его возможности нет.
явно что рефакторинг исключён не сказал. Только пожаловался что П1 из далёких 70-х.
...
Рейтинг: 0 / 0
07.06.2017, 10:31
    #39467581
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
Petro123Только пожаловался что П1 из далёких 70-х.

Напомнило серию про Бивиса и Баттхеда, как они смотрели кино про древний Египед и один другому говорит:
- Это было в древности
- Ага в 60-е ...

Как ты думаешь человеку, который только начал изучать как из одного потока событие передать в другой, легко будет рефакторить программку обмена информацией с какой-нибудь железкой которую из живых мало кто видел, а тех кто знал протокол обмена с ней кремировали в отделе кадров прям на документации по ней еще в прошлом веке?
Хотя конечно все может быть гораздо проще и просто - какой-то хвизик наваял что-то на Фортране70 и для повторения его трудов надо нехило разбираться в гирогазодинамике плазмы. :)
...
Рейтинг: 0 / 0
07.06.2017, 10:54
    #39467617
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
Сергей Арсеньев,
)) наше дело тут особо за ТС не думать, а дать варианты).
Ему на месте виднее.
...
Рейтинг: 0 / 0
07.06.2017, 11:09
    #39467633
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
Petro123,
однозначно, старый софт не подлежит изменению.
...
Рейтинг: 0 / 0
07.06.2017, 11:24
    #39467654
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
и так попробую отвечать на вопросы:
BlazkowiczДа. Ведь вам, наверняка нужна целая очередь. Что если легаси приложение успеет обработать множество файлов, а сервлет никто ниразу не вызовет? Даже если нужен только последний файл, никогда не знаешь вдруг понадобится история.
т.е. jms? или лучше читать из базы с помощью ws?
нет не только последний но и все полученные файлы нужны, т.к. их могут запрашивать разные юзеры.
да история обязательно.

авторОн же сказал, там легаси приложение. Переписать его возможности нет. Вполне классическая ситуация интеграции с древним говном.
так и есть...

Сергей АрсеньевВкратце, вопрос простой. Убедился что файл появился (и дозаписался) создаешь отметку в синглтоне уровня приложения (можно и в БД). Дальше все зависит от модели взаимодействия с клиентом. Синхронные сервлеты просто просматривают его (собственно могут и сам каталог с файлами, им по хорошему watch не нужен, но раз уж сделали - не выкидывать же) на предмет готовности ответа. Асинхронные (в т.ч. websocket,push и прочее) подписываются на событие изменения (или просто периодически, в этом случае правда, опять же watch то зачем) сканируют его на предмет присутствия нужного им ответа и отправляют пользователю.
интересно, надо подумать, сенкс

Petro123явно что рефакторинг исключён не сказал. Только пожаловался что П1 из далёких 70-х.
думаю рефакторинг пустая трата времени... и ещё прямого доступа к П1 нет.
...
Рейтинг: 0 / 0
07.06.2017, 11:26
    #39467658
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
Музаффарт.е. jms? или лучше читать из базы с помощью ws?

Нет, не JMS. Обработали файл - добавили результат в табличку. Тоже своеобразная очередь ведь.
...
Рейтинг: 0 / 0
07.06.2017, 11:29
    #39467662
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
Petro123Сергей Арсеньев,
)) наше дело тут особо за ТС не думать, а дать варианты).
Ему на месте виднее.
это да. :)

авторНет, не JMS. Обработали файл - добавили результат в табличку. Тоже своеобразная очередь ведь.
согласен, и тогда задача будет более примитивным... :)
...
Рейтинг: 0 / 0
07.06.2017, 12:03
    #39467710
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получения данных из потока в сервлете
Музаффар,
Тут 2 вопроса
1 где Модель?
2 нужно ли уведомле клиента?
----
Модель можно продублировать в базу из файлов.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / получения данных из потока в сервлете / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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