powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Servlet 3.1 и timeout
13 сообщений из 38, страница 2 из 2
Servlet 3.1 и timeout
    #39349146
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TivakПока не понял о чем ты
я о том что асинхронный сервлет для другой задачи. Не твоей.
Там асинхронный подпроцесс (твой долгий) потом сам отвечает клиенту.
Так понятно?
...
Рейтинг: 0 / 0
Servlet 3.1 и timeout
    #39349149
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
суть метода (не для вас):
авторПосле набора этого адреса в адресной строке браузера, подождите 10 секунд, и вы увидите ответ сервлета.
http://www.studfiles.ru/preview/1701994/page:78/
Удачи аффтару!
...
Рейтинг: 0 / 0
Servlet 3.1 и timeout
    #39349164
Tivak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123TivakПока не понял о чем ты
я о том что асинхронный сервлет для другой задачи. Не твоей.
Там асинхронный подпроцесс (твой долгий) потом сам отвечает клиенту.
Так понятно?
использование асинхронности и время обработки на сервере не связаны напрямую.
Вопрос в том, сколько коннектов хочется держать одновременно и сколько потоков понадобится для их обработки.
...
Рейтинг: 0 / 0
Servlet 3.1 и timeout
    #39349182
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tivakиспользование асинхронности и время обработки на сервере не связаны напрямую.
Я сказал для каких юз-кейсов (ВИ) используется технология.
Перевести?
TivakВопрос в том, сколько коннектов хочется держать одновременно и сколько потоков понадобится для их обработки.
"коннектов" - это слово почему всплыло на второй странице?
...
IMHO вы как программист сами себе придумали задачу.
Покажите ответ на клиента. В каком формате?
...
Рейтинг: 0 / 0
Servlet 3.1 и timeout
    #39349188
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Покажите ответ на клиента. В каком формате?
Код: java
1.
getWriter().println("<h1>60,7</h1>");


Т.к. если вы передаёте JSON или другой формат, то там будет метка времени, и при желании дельта по времени ответа в миллисекундах.
И тогда сабж не имеет смысла.
IMHO
...
Рейтинг: 0 / 0
Servlet 3.1 и timeout
    #39351288
Tivak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Итак, рассказываю, что в итоге сделал
с servlet 3.1 так и не удалось найти нормального решения. Все решения сводились к тому, что приходится запускать обработку в отдельном потоке, а поток контейнера лочить. что само по себе не правильно.
В идеале надо было решение, чтобы запускать обработку в отдельном потоке, а при готовности или таймауте инициировать событие записи. но как это правильно сделать я не нашел.

в итоге откатился к servlet 3.0
проверил работу встроенного механизма timeout на tomcat 9. по моим тестам они ничего не гарантирует, даже приблизительно, при цифрах в 100мс.
Поэтому сделал таймаут при помощи отложенного запуска потока + написал простенький контроль состояния асинхронного контекста.
посмотрим как это себя покажет в будущем.

Жаль что на текущем этапе пришлось отказаться от неблокирующего io
...
Рейтинг: 0 / 0
Servlet 3.1 и timeout
    #39351300
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tivak,
вывод такой, что задача у тебя странная. А не сервлеты.
Tivakс servlet 3.1 так и не удалось найти нормального решения. Все решения сводились к тому, что приходится запускать обработку в отдельном потоке, а поток контейнера лочить. что само по себе не правильно.
В идеале надо было решение, чтобы запускать обработку в отдельном потоке, а при готовности или таймауте инициировать событие записи. но как это правильно сделать я не нашел.
представь себе, что сервлет - это обычный поток А
Значит при старте обычного потока А тебе надо через секундомер(Б) вырубить поток А и вместо него отправить ответ.
Т.е. лезть в контейнер.
Мыши пищали, но ели кактус (с)
...
Рейтинг: 0 / 0
Servlet 3.1 и timeout
    #39351315
Tivak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Tivak,
вывод такой, что задача у тебя странная. А не сервлеты.
Tivakс servlet 3.1 так и не удалось найти нормального решения. Все решения сводились к тому, что приходится запускать обработку в отдельном потоке, а поток контейнера лочить. что само по себе не правильно.
В идеале надо было решение, чтобы запускать обработку в отдельном потоке, а при готовности или таймауте инициировать событие записи. но как это правильно сделать я не нашел.
представь себе, что сервлет - это обычный поток А
Значит при старте обычного потока А тебе надо через секундомер(Б) вырубить поток А и вместо него отправить ответ.
Т.е. лезть в контейнер.
Мыши пищали, но ели кактус (с)

вот не согласен. мне не надо никуда лезть в контейнер. просто или я успел обработать запрос и отдать ответ или не успел обработать запрос и отдал стандартный ответ. не вижу тут вылезание из контейнеров.
почему хотелось использовать именно не блокирующее io? а чтобы не блокировать потоки, в случае проблем при передаче (например).
опять же в идеале потом задача сведется к ожиданию ответов из внешних систем (из бд например или других сервисов). соответственно нам для этого всего не нужен на каждый запрос отдельный поток.
поток нужен только для приема сообщения, формирования запроса к бд, обработки ответа от бд и ответа внешнему клиенту. нет никаких ожиданий.
Но на данный момент это все мечты. К которым надеюсь вернемся в будущем)))
...
Рейтинг: 0 / 0
Servlet 3.1 и timeout
    #39351382
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tivak,
Давай конкретнее.
Выше было про поток А и поток Б.
Это понятно?
...
Рейтинг: 0 / 0
Servlet 3.1 и timeout
    #39352228
Tivak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Tivak,
Давай конкретнее.
Выше было про поток А и поток Б.
Это понятно?

В общих чертах так и получилось.
servlet стартует поток А и отложено стартует поток Б.
если в момент старта потока Б поток А отработал и отправил ответ, то все хорошо, он ничего не делает.
если же поток А все еще работает, то поток Б отправляет ответ клиенту.
Я тут нигде в недра контейнера не залез )))
...
Рейтинг: 0 / 0
Servlet 3.1 и timeout
    #39352233
Tivak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тему можно закрывать )
Решение было найдено и реализовано.
если найду как правильно реализовать задуманное на servlet 3.1 то обязательно отпишусь в этой теме.

Всем спасибо за помощь!!!!
...
Рейтинг: 0 / 0
Servlet 3.1 и timeout
    #39352237
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то я недопонял.
В Servlet API 3.0 есть что-то, чего нет в Servlet API 3.1?
...
Рейтинг: 0 / 0
Servlet 3.1 и timeout
    #39352270
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TivakВ общих чертах так и получилось.
servlet стартует поток А и отложено стартует поток Б.
я говорил, что сервлет САМ - поток А.
А так, счас у тебя 3 потока: А+Б+С
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Servlet 3.1 и timeout
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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