|
|
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
rdmзабыл ник, ну вот к примеру Solr (Cloud) или что-то в этом духе. Там же явно создание потоков идет. Так все зависит от кривости рук авторов. Если правильно написать - то утечек не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2015, 22:26 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
rdmBlazkowicz, как в этом случае работать с кодом, который создает потоки? Как интегрировать такой код к web интерфейсу (например jetty+spring) А оно вам точно надо? Просто не каждый проект нуждается в хот-редеплое. Ну а если столкнулись все-таки с проблемой, то делайте по совету Blazkowicz с форума rsdn. Хотя также советую посмотреть на либу <dependency> <groupId>se.jiderhamn</groupId> <artifactId>classloader-leak-prevention</artifactId> <version>1.13.0</version> </dependency> процентов 90 ликов точно уберет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2015, 22:28 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
забыл ник, ой) про редеплой я пропустил) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2015, 23:11 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
забыл ник, а еще вопрос можно? Какой смысл в редеплое? Если в контейнере одно приложение, почему не проще "остановить - обновить код - запустить заново" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2015, 23:13 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
rdmзабыл ник, а еще вопрос можно? Какой смысл в редеплое? Если в контейнере одно приложение, почему не проще "остановить - обновить код - запустить заново" ? Потому что некоторые приложения должны работать 24х7. У нас например было 4 сервера в кластере, weblogic, в нем можно запустить редеплой и пока он не закончился - то будет работать старая версия, как только закончился и все старые версии отработали - то переключается на новую. А если стопать сервак - то это прямые финансовые потери. Да и удобно - если хотредеплой не удался - есть шанс найти ошибку быстро и попробовать еще раз. А если рестартовать - то можно вообще встрять на часок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 00:05 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
забыл ник, т.е. если редеплой не делать, то и утечек связанных с многопоточностью не будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 00:18 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
rdmзабыл ник, т.е. если редеплой не делать, то и утечек связанных с многопоточностью не будет? ну они будут все равно конечно, просто это мизер. Суть проблемы многократного редеплоя в том, что незавершенные потоки не дают шанса garbage collector собрать permgen, потому что держат сильную ссылку на classloader, и после 2-3 редеплоев permgen забивается в хлам и вылетает OOM Exception. Если у вас модель - остановили сервак, накатили апдейт - рестартовали - то я бы сильно не беспокоился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 00:58 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
Petro123mad_nazgulТолько потом калбекам собирать все проверки я себе не представляю. Особенно если одна проверка будет несколько миллисекунд, а другая несколько секунд. как обычно. В свете новых веяний в архитектуре назовём их микросервисы))). И назначим обработчик-функцию на событие "Пришёл ответ")). Если это JS то там тоже это всё есть. Можно сервлет и из Java вызвать. .. Веб решения Уже говорят что длинного ничего не должно быть. Вот именно на JS не представляю. Т.е. либо ч/з цепочку колбеков, либо... не знаю как. Либо каким-то образом придется пилить цикл с проверкой какого массива, значения которого меняются в коллбеках для микросервисов. В общем я вижу что решение будет таким же как если бы писать на стороне сервера. Т.е. преимуществ никаких. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 07:18 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
вадя, Переведи слово вебсокет и ajax. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 07:44 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
Можно еще поиграть в пасьянс. Сервлет не закончит process() до тех пор пока все async callbacs (ac1) не отработают. Допустим ac1 занимает 3 секунды. Это самый долгий ac. Все остальные - мелкие. По 0.5 сек. И их 3 штуки. Тогда имеет смысл разложить так. Thread1: ac1 (3 sec) Thread2: ac2, ac3, ac4 ( 3 * 0.5 = 1.5 sec). Разумеется здесь будет не асинхронность а послоедовательность. И нет смысла запускать 4 потока. Еще есть варианты . В зависимости от исходных данных отклик может варьироваться. К примеру юзер запрашивает историю биллинга за 1 день, неделю, месяц - то можно прогозировать асинк-каллбек на 1, 5, 12 секунд к примеру и исходя из этого строить план. Или в зависимости от резалта булевых операций тоже будут какие-то новые каллбэки. Вобщем до последнего оптимизировать flow однопоточного алгоритма. А потом уж форсировать mt и async. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 08:16 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
Petro123вадя, Переведи слово вебсокет и ajax. не понял.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 08:23 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
вадя, 1. Чем тут вебсокет поможет? 2. До него был и есть AJAX. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 08:27 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
вадя, 1. Чем тут вебсокет поможет? 2. До него был и есть AJAX. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 08:27 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
Petro123вадя, 1. Чем тут вебсокет поможет? 2. До него был и есть AJAX. как бы да, и в тоже время нет ajax подразумевает обязательный ответ, и порядок вопрос-ответ. можно сделать и несколько сервлетов. но ws это проще - отправил один , второй и по барабану что из них вернет ответ , а что нет , и если оба - то в каком порядке. ws(сервер) получил данные, выделил команду - запустил метод, ну а в этом методе можно скок угодно потоков организовать. а в java8 по взаимодействии с потоками уже много легче. и основной метод , после завершения всех потоков спокойно отдаст данные клиенту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 08:38 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
mad_nazgulВот именно на JS не представляю. - 3 куска-сервлета Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. В Java исторически более шумный, нелаконичный код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 09:38 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
вадя, вадяajax подразумевает обязательный ответ, и порядок вопрос-ответ. я тебя совсем не понял. IMHO ты не писал AJAX ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 09:39 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
Petro123вадя, вадяajax подразумевает обязательный ответ, и порядок вопрос-ответ. я тебя совсем не понял. IMHO ты не писал AJAX писал, но мне не понравилось в твоём примере 3 ajax. и в каждом проверка. и на сервере надо 3 сервлета. я обхожусь 1 ws. и без всяких проверок. я просто отправляю данные. отправил и забыл. никаких проверок. если у меня два долгих процесса, мне не надо дожидаться когда закончится первый, чтоб отправить второй. отправляю оба, один за другим, (ну надо следить чтоб у них конфликтов не вышло меж собой на сервере, но это отдельная тема) у меня один слушатель ws на сервере, он принимает данные и разруливает. всё просто. у меня со страницы идет оправка 10-20 ws, а принимаются далеко не все, один и тот же запрос может иметь ответ, а может и нет. (если запрос на удаление строки в таблице, то нафига что-то возвращать с сервера, если достаточно просто средствами js удалить строку. вопрос квитирования/подтверждения - по необходимости) или я не правильно тебя понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 10:19 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
а принимаются далеко не все, == нет необходимости в ответах от сервера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 10:24 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
вадяписал, но мне не понравилось в твоём примере 3 ajax. и в каждом проверка. и на сервере надо 3 сервлета. стоп! - 3 сервлета - это ТЗ. Мы говорим о решении асинхронного вызова 3-4 кусков задачи. 2. К каждом не проверка, а банальный прогрессбар. Ты его чем двигать будешь? Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 10:25 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
OFF вадяа принимаются далеко не все, == нет необходимости в ответах от сервера я тебя полгода назад спросил про конфликты AJAX+JS+WebSocet+сессии. Ты обещал протестить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 10:27 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
Petro123OFF вадяа принимаются далеко не все, == нет необходимости в ответах от сервера я тебя полгода назад спросил про конфликты AJAX+JS+WebSocet+сессии. Ты обещал протестить. извини, я видимо что-то пропустил, напомни где, и я постараюсь помочь, мне этот вопрос (сравнения) интересен авторстоп! - 3 сервлета - это ТЗ. Мы говорим о решении асинхронного вызова 3-4 кусков задачи. 2. К каждом не проверка, а банальный прогрессбар. Ты его чем двигать будешь? Удачи! ws это по природе асинхронно. я ваще не рассматриваю сколько у меня кусков задачи, этой проблемы просто не возникает, надо что-сделать делаю, не задумываясь. а прогресс бар я двигаю сервером :) пошагово, я могу отсылать процесс выполнения с сервера буквально через строчку серверного кода (это будет выглядеть как отображение лог файла). в реальном времени. со всеми состояниями и прочей инфой. вот по прогрессбару с ws нет равных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 10:44 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
причем я могу выводить эту инфу другому клиенту ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 10:56 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
вадя, я люблю простые решения (WS тут оверхед). Приведи код не сложнее чем выше. И на этом закончим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 11:06 |
|
||
|
Многопоточность внутри сервлетов. Помогите что использовать
|
|||
|---|---|---|---|
|
#18+
Petro123, доберусь до кмпа.. а ты можешь ajax отобразить в реальном времени какой метод выполняет юзер , а ты подключился админом,? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 11:25 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39065838&tid=2124867]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
185ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
80ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 560ms |

| 0 / 0 |
