|
|
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
здравствуйте всем! уважаемые хотел узнать ваши мнения по поводу нескольким вопросам. Есть внешнее приложение (условно назову П1) , слушает папку out. Есть новое серверное приложение(П2), обслуживает веб-клиентов, которое и пишет «запросы»(от клиентов (приходят по ajax) в эту папку, ответы П1 помещает в папку in. В П2 для прослушивания папки in используется с вотч сервис апи, он запускается в отдельном потоке при старте приложения П2. С появлением файла в папке он его читает и должен передать данные во вью. Вопрос - как в сервлете получить данные из потока — прочитанный файл. со временем могут возникать и другие вопросы... :) З.Ы. заранее всем спасибо! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 20:56 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
Музаффар, - если ответ долгий, то почему не писать и читать из базы? 0 если быстрый, то почему П1 не может спросить П2 по url(rest)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 21:28 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
Petro123, ну как бы П1 из далеких 70х и там не были такие понятия как рест и т.д. даже там все хранятся в файлах... вот по этому ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 21:30 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
Музаффар, там выше был вопрос. Сколько занимает ответ П70 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 22:26 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
Petro123, исходя из ситуации от каких то секунд до исправления аварии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 06:47 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
Музаффар Вопрос - как в сервлете получить данные из потока — прочитанный файл. Эти данные нужно поместить в какое либо общее хранилище - базу данных, синглтон, статическую переменную, временный файл и т.п. Надежнее всего в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 06:56 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
Музаффарздравствуйте всем! уважаемые хотел узнать ваши мнения по поводу нескольким вопросам. Есть внешнее приложение (условно назову П1) , слушает папку out. Есть новое серверное приложение(П2), обслуживает веб-клиентов, которое и пишет «запросы»(от клиентов (приходят по ajax) в эту папку, ответы П1 помещает в папку in. В П2 для прослушивания папки in используется с вотч сервис апи, он запускается в отдельном потоке при старте приложения П2. С появлением файла в папке он его читает и должен передать данные во вью. Вопрос - как в сервлете получить данные из потока — прочитанный файл. со временем могут возникать и другие вопросы... :) З.Ы. заранее всем спасибо! :) Ну... Быстро, просто и не совсем правильно - На веб клиенте пишется скрипт, который по таймауту делает запросы на сервлет. Который проверяет папку in и выдает результат. Чуть сложнее, это ч/з websocket. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 07:00 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЭти данные нужно поместить в какое либо общее хранилище - базу данных, синглтон, статическую переменную, временный файл и т.п. Надежнее всего в БД. да об этом и думаю т.е. класс который прослушивает папку должен писать при получении запишет в базу правильно ли понял? mad_nazgulНу... Быстро, просто и не совсем правильно - На веб клиенте пишется скрипт, который по таймауту делает запросы на сервлет. Который проверяет папку in и выдает результат. Чуть сложнее, это ч/з websocket. не будем пойти по неправильной дорожке :) да про вс тоже думаем... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 07:10 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
Музаффарда об этом и думаю т.е. класс который прослушивает папку должен писать при получении запишет в базу правильно ли понял? Да. Ведь вам, наверняка нужна целая очередь. Что если легаси приложение успеет обработать множество файлов, а сервлет никто ниразу не вызовет? Даже если нужен только последний файл, никогда не знаешь вдруг понадобится история. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 09:30 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
Музаффар, идеально, убрать анахронизм in\out папки и писать в базу обоими приложениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 09:44 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
BlazkowiczМузаффарда об этом и думаю т.е. класс который прослушивает папку должен писать при получении запишет в базу правильно ли понял? Да. Ведь вам, наверняка нужна целая очередь. Что если легаси приложение успеет обработать множество файлов, а сервлет никто ниразу не вызовет? Даже если нужен только последний файл, никогда не знаешь вдруг понадобится история. +10 Рано или поздно заказчик попросит историю. Т.е. сначала в ТЗ конешно пропишут самый простой алгоритм типа как появились данные так отправь но про историю все равно вспомнят. Типа тут у нас косяк прозошел сеть упала, диск посыпался, данные криво сели будьте любезны дайте как отчет когда какие данные ушли или не ушли нас с..по нужны данные, мы проверить хотим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 09:47 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
Petro123Музаффар, идеально, убрать анахронизм in\out папки и писать в базу обоими приложениями. Он же сказал, там легаси приложение. Переписать его возможности нет. Вполне классическая ситуация интеграции с древним говном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 09:53 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
МузаффарзВ П2 для прослушивания папки in используется с вотч сервис апи, он запускается в отдельном потоке при старте приложения П2 . ... Вопрос - как в сервлете получить данные из потока — прочитанный файл. Вот тот кто так сделал и должен ответить на этот вопрос - а на поркуа он так поступил. :) Вкратце, вопрос простой. Убедился что файл появился (и дозаписался) создаешь отметку в синглтоне уровня приложения (можно и в БД). Дальше все зависит от модели взаимодействия с клиентом. Синхронные сервлеты просто просматривают его (собственно могут и сам каталог с файлами, им по хорошему watch не нужен, но раз уж сделали - не выкидывать же) на предмет готовности ответа. Асинхронные (в т.ч. websocket,push и прочее) подписываются на событие изменения (или просто периодически, в этом случае правда, опять же watch то зачем) сканируют его на предмет присутствия нужного им ответа и отправляют пользователю. Ответ же на прямой вопрос, как input stream из фала перенаправить в output stream сервлета - Гугл в помощь. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 10:04 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
BlazkowiczОн же сказал, там легаси приложение. Переписать его возможности нет. явно что рефакторинг исключён не сказал. Только пожаловался что П1 из далёких 70-х. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 10:13 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
Petro123Только пожаловался что П1 из далёких 70-х. Напомнило серию про Бивиса и Баттхеда, как они смотрели кино про древний Египед и один другому говорит: - Это было в древности - Ага в 60-е ... Как ты думаешь человеку, который только начал изучать как из одного потока событие передать в другой, легко будет рефакторить программку обмена информацией с какой-нибудь железкой которую из живых мало кто видел, а тех кто знал протокол обмена с ней кремировали в отделе кадров прям на документации по ней еще в прошлом веке? Хотя конечно все может быть гораздо проще и просто - какой-то хвизик наваял что-то на Фортране70 и для повторения его трудов надо нехило разбираться в гирогазодинамике плазмы. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 10:31 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, )) наше дело тут особо за ТС не думать, а дать варианты). Ему на месте виднее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 10:54 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
Petro123, однозначно, старый софт не подлежит изменению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 11:09 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
и так попробую отвечать на вопросы: BlazkowiczДа. Ведь вам, наверняка нужна целая очередь. Что если легаси приложение успеет обработать множество файлов, а сервлет никто ниразу не вызовет? Даже если нужен только последний файл, никогда не знаешь вдруг понадобится история. т.е. jms? или лучше читать из базы с помощью ws? нет не только последний но и все полученные файлы нужны, т.к. их могут запрашивать разные юзеры. да история обязательно. авторОн же сказал, там легаси приложение. Переписать его возможности нет. Вполне классическая ситуация интеграции с древним говном. так и есть... Сергей АрсеньевВкратце, вопрос простой. Убедился что файл появился (и дозаписался) создаешь отметку в синглтоне уровня приложения (можно и в БД). Дальше все зависит от модели взаимодействия с клиентом. Синхронные сервлеты просто просматривают его (собственно могут и сам каталог с файлами, им по хорошему watch не нужен, но раз уж сделали - не выкидывать же) на предмет готовности ответа. Асинхронные (в т.ч. websocket,push и прочее) подписываются на событие изменения (или просто периодически, в этом случае правда, опять же watch то зачем) сканируют его на предмет присутствия нужного им ответа и отправляют пользователю. интересно, надо подумать, сенкс Petro123явно что рефакторинг исключён не сказал. Только пожаловался что П1 из далёких 70-х. думаю рефакторинг пустая трата времени... и ещё прямого доступа к П1 нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 11:24 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
Музаффарт.е. jms? или лучше читать из базы с помощью ws? Нет, не JMS. Обработали файл - добавили результат в табличку. Тоже своеобразная очередь ведь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 11:26 |
|
||
|
получения данных из потока в сервлете
|
|||
|---|---|---|---|
|
#18+
Petro123Сергей Арсеньев, )) наше дело тут особо за ТС не думать, а дать варианты). Ему на месте виднее. это да. :) авторНет, не JMS. Обработали файл - добавили результат в табличку. Тоже своеобразная очередь ведь. согласен, и тогда задача будет более примитивным... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 11:29 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39467559&tid=2122869]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 366ms |

| 0 / 0 |
