powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Многопоточность внутри сервлетов. Помогите что использовать
25 сообщений из 53, страница 2 из 3
Многопоточность внутри сервлетов. Помогите что использовать
    #39065652
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdmзабыл ник, ну вот к примеру Solr (Cloud) или что-то в этом духе. Там же явно создание потоков идет.

Так все зависит от кривости рук авторов. Если правильно написать - то утечек не будет.
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065653
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdmBlazkowicz, как в этом случае работать с кодом, который создает потоки? Как интегрировать такой код к web интерфейсу (например jetty+spring)

А оно вам точно надо? Просто не каждый проект нуждается в хот-редеплое. Ну а если столкнулись все-таки с проблемой, то делайте по совету Blazkowicz с форума rsdn.

Хотя также советую посмотреть на либу

<dependency>
<groupId>se.jiderhamn</groupId>
<artifactId>classloader-leak-prevention</artifactId>
<version>1.13.0</version>
</dependency>

процентов 90 ликов точно уберет.
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065665
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник, ой) про редеплой я пропустил)
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065666
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник, а еще вопрос можно? Какой смысл в редеплое? Если в контейнере одно приложение, почему не проще "остановить - обновить код - запустить заново" ?
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065687
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdmзабыл ник, а еще вопрос можно? Какой смысл в редеплое? Если в контейнере одно приложение, почему не проще "остановить - обновить код - запустить заново" ?

Потому что некоторые приложения должны работать 24х7. У нас например было 4 сервера в кластере, weblogic, в нем можно запустить редеплой и пока он не закончился - то будет работать старая версия, как только закончился и все старые версии отработали - то переключается на новую. А если стопать сервак - то это прямые финансовые потери. Да и удобно - если хотредеплой не удался - есть шанс найти ошибку быстро и попробовать еще раз. А если рестартовать - то можно вообще встрять на часок
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065690
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник, т.е. если редеплой не делать, то и утечек связанных с многопоточностью не будет?
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065700
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdmзабыл ник, т.е. если редеплой не делать, то и утечек связанных с многопоточностью не будет?

ну они будут все равно конечно, просто это мизер. Суть проблемы многократного редеплоя в том, что незавершенные потоки не дают шанса garbage collector собрать permgen, потому что держат сильную ссылку на classloader, и после 2-3 редеплоев permgen забивается в хлам и вылетает OOM Exception. Если у вас модель - остановили сервак, накатили апдейт - рестартовали - то я бы сильно не беспокоился.
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065732
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123mad_nazgulТолько потом калбекам собирать все проверки я себе не представляю.
Особенно если одна проверка будет несколько миллисекунд, а другая несколько секунд.
как обычно. В свете новых веяний в архитектуре назовём их микросервисы))).
И назначим обработчик-функцию на событие "Пришёл ответ")).
Если это JS то там тоже это всё есть.
Можно сервлет и из Java вызвать.
..
Веб решения Уже говорят что длинного ничего не должно быть.

Вот именно на JS не представляю.
Т.е. либо ч/з цепочку колбеков, либо... не знаю как.
Либо каким-то образом придется пилить цикл с проверкой какого массива, значения которого меняются в коллбеках для микросервисов.
В общем я вижу что решение будет таким же как если бы писать на стороне сервера.
Т.е. преимуществ никаких.
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065738
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Переведи слово вебсокет и ajax.
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065759
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно еще поиграть в пасьянс.

Сервлет не закончит 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.
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065760
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадя,
Переведи слово вебсокет и ajax.
не понял....
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065762
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
1. Чем тут вебсокет поможет?
2. До него был и есть AJAX.
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065763
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
1. Чем тут вебсокет поможет?
2. До него был и есть AJAX.
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065765
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадя,
1. Чем тут вебсокет поможет?
2. До него был и есть AJAX.
как бы да, и в тоже время нет
ajax подразумевает обязательный ответ, и порядок вопрос-ответ.
можно сделать и несколько сервлетов.
но ws это проще - отправил один , второй и по барабану что из них вернет ответ , а что нет , и если оба - то в каком порядке.
ws(сервер) получил данные, выделил команду - запустил метод, ну а в этом методе можно скок угодно потоков организовать.
а в java8 по взаимодействии с потоками уже много легче.
и основной метод , после завершения всех потоков спокойно отдаст данные клиенту.
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065798
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
var переменная_флаг1;
var переменная_флаг2;
var переменная_флаг3;
  $.get('servlet_name1', {"param_url": param_url},
          function(resp) {// готово
            переменная_флаг1 = resp;
            ПроверкаВсеЛиВыполнены();
          })
  });
  $.get('servlet_name2', {"param_url": param_url},
          function(resp) {
             // готово
            переменная_флаг2 = resp;
            ПроверкаВсеЛиВыполнены();
          })
  });
  $.get('servlet_name3', {"param_url": param_url},
          function(resp) {
             // готово
            переменная_флаг3 = resp;
            ПроверкаВсеЛиВыполнены();
          })
  });


В Java исторически более шумный, нелаконичный код.
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065800
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
вадяajax подразумевает обязательный ответ, и порядок вопрос-ответ.
я тебя совсем не понял. IMHO ты не писал AJAX
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065832
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадя,
вадяajax подразумевает обязательный ответ, и порядок вопрос-ответ.
я тебя совсем не понял. IMHO ты не писал AJAX
писал, но мне не понравилось
в твоём примере 3 ajax.
и в каждом проверка.
и на сервере надо 3 сервлета.
я обхожусь 1 ws.
и без всяких проверок.
я просто отправляю данные. отправил и забыл. никаких проверок.
если у меня два долгих процесса, мне не надо дожидаться когда закончится первый, чтоб отправить второй.
отправляю оба, один за другим, (ну надо следить чтоб у них конфликтов не вышло меж собой на сервере, но это отдельная тема)
у меня один слушатель ws на сервере, он принимает данные и разруливает.
всё просто.
у меня со страницы идет оправка 10-20 ws, а принимаются далеко не все, один и тот же запрос может иметь ответ, а может и нет.
(если запрос на удаление строки в таблице, то нафига что-то возвращать с сервера, если достаточно просто средствами js удалить строку. вопрос квитирования/подтверждения - по необходимости)
или я не правильно тебя понял?
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065837
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а принимаются далеко не все, == нет необходимости в ответах от сервера
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065838
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяписал, но мне не понравилось
в твоём примере 3 ajax.
и в каждом проверка.
и на сервере надо 3 сервлета.
стоп!
- 3 сервлета - это ТЗ. Мы говорим о решении асинхронного вызова 3-4 кусков задачи.
2. К каждом не проверка, а банальный прогрессбар. Ты его чем двигать будешь?
Удачи!
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065840
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OFF
вадяа принимаются далеко не все, == нет необходимости в ответах от сервера
я тебя полгода назад спросил про конфликты AJAX+JS+WebSocet+сессии.
Ты обещал протестить.
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065872
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123OFF
вадяа принимаются далеко не все, == нет необходимости в ответах от сервера
я тебя полгода назад спросил про конфликты AJAX+JS+WebSocet+сессии.
Ты обещал протестить.
извини, я видимо что-то пропустил, напомни где, и я постараюсь помочь, мне этот вопрос (сравнения) интересен

авторстоп!
- 3 сервлета - это ТЗ. Мы говорим о решении асинхронного вызова 3-4 кусков задачи.
2. К каждом не проверка, а банальный прогрессбар. Ты его чем двигать будешь?
Удачи!
ws это по природе асинхронно.
я ваще не рассматриваю сколько у меня кусков задачи, этой проблемы просто не возникает, надо что-сделать делаю, не задумываясь.

а прогресс бар я двигаю сервером :) пошагово, я могу отсылать процесс выполнения с сервера буквально через строчку серверного кода (это будет выглядеть как отображение лог файла). в реальном времени. со всеми состояниями и прочей инфой.
вот по прогрессбару с ws нет равных
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065887
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
причем я могу выводить эту инфу другому клиенту
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065896
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
я люблю простые решения (WS тут оверхед).
Приведи код не сложнее чем выше. И на этом закончим.
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065922
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
доберусь до кмпа..
а ты можешь ajax отобразить в реальном времени какой метод выполняет юзер , а ты подключился админом,?
...
Рейтинг: 0 / 0
Многопоточность внутри сервлетов. Помогите что использовать
    #39065926
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя, это OFF
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 2 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Многопоточность внутри сервлетов. Помогите что использовать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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