powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вывод результата в процессе выполнения запроса
50 сообщений из 50, показаны все 2 страниц
Вывод результата в процессе выполнения запроса
    #39704062
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть приложение: Spring, Spring Data JPA, Mysql.

Есть запрос который может выполнятся продолжительное время. В этом запросе происходит выборка с базы и фильтрация посредством Java (таково задание, не моя прихоть). То бишь я постранично достаю пачку данных с бд, фильтрую, иду за следующей пачкой данных.

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

Если ли возможность публиковать результат во время выполнения запроса? То бишь получил первую пачку данных, отфильтровал, отправил клиенту и т.д.

Структура обычная RestContoller->Service->JpaDao.
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704185
Фотография Герой дня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может, 5й spring такое может ?
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704205
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ли возможность...

Есть

результат во время выполнения запроса....отправил клиенту

А клиент такое у Вас может?

Если да, то читать документацию/тех_задание на клиента ))) + правильно ассинхронно отдавать результат с сервера

Каким образом вопрос относится к Java - мне не понятно.
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704225
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopВ этом запросе происходит выборка с базы и фильтрация посредством Java (таково задание, не моя прихоть). То бишь я постранично достаю пачку данных с бд, фильтрую, иду за следующей пачкой данных.за это голову свернуть....
пока mysql не выполнит запрос - будешь ждать....
TsyklopТо бишь получил первую пачку данных, отфильтровал, отправил клиенту и т.д.для этого и предназначены websocket
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704233
cossack5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно указать statement.setFetchSize(100), тогда JDBC драйвер (если умеет) будет доставать по 100 записей.
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704244
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cossack5Можно указать statement.setFetchSize(100), тогда JDBC драйвер (если умеет) будет доставать по 100 записей.это не спасёт
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704303
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cossack5Можно указать statement.setFetchSize(100), тогда JDBC драйвер (если умеет) будет доставать по 100 записей.
он и так достаёт там 200 строк. потом я фильтрую в Java коде и записываю в List результат, который отдам клиенту.
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704308
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev, на клиенте нет ни angular и прочее. По сути пустая страница.

А почему не к Java? Ведь сервер тоже надо научить как это делать. Да и вопрос был про то как это делать на сервере, а не как на клиенте это принимать. И о том что "а может клиент" речи не шло. Это вы перепрыгнули на клиента почему-то. А про суть вопроса касательно сервера ничего не увидел окромя "есть".
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704312
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,
отдать с сервера клиенту можно по частям если есть full duplecs связь.
что за клиент?
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704334
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяTsyklop,
отдать с сервера клиенту можно по частям если есть full duplecs связь.
что за клиент?
да обычный клиент. пустота. просто одна jsp и все.
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704339
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopда обычный клиент. пустота. просто одна jsp и все.тогда ws и будет счастье
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704362
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпока mysql не выполнит запрос - будешь ждать....

Не знаю насчет mysql, но в нормальных СУБД, фазы prepare statement, execution and fetch - различаются

Большинство СУБД целый ряд фильтров накладывают на фазе fetch. Т.ч. запросы "ждать" не нужно. Возврат управления (execution) происходит за максимально короткое время, а "тормозить" он будет именно тогда, когда запросят (fetch) новую порцию данных, ровно на время, необходимое для обработки (получение с диска) данной порции данных.

Раземеется, если у запроса подходящий план выполнения. Distinct, order by, hash join не всегда можно на fetch отложить (только если физической сортировку удалось заменить проходом по индексу).

AFAIK
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704372
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
ага , запрос отдал часть и ТС эту часть обработал, а ему ещё часть подкинули - и што теперь с ней делать?
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704382
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяLeonid Kudryavtsev,
ага , запрос отдал часть и ТС эту часть обработал, а ему ещё часть подкинули - и што теперь с ней делать?
в зависимости от задачи

Сделать ассинхронную обработку - можно. Вопрос затраченных усилий, выделенного бюджета и осмысленности.

Какие-то влажные мечты, что кто-то что-то за кого-то будет делать или в современных средах разработки оно должно "все само делаться" - ну... влажные мечты и есть ))) уволиться с работы, идти бомжевать и ждать пришествия искуственного интелекта )))

При 200 строках результата, даже оптимизировать смешно. Нужно нормально писать SQL и проектировать базу, что бы не тормозило.

P.S.
AFAIK "стандартный" jsp (Apache Tomcat) и так ассинхронно отдает, не дожидаясь завершения выполнения. Если только, кто нибудь, ему не помог. Например, делая не нужные шаги обработки, типа "записываю в List результат"
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704386
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopон и так достаёт там 200 строк. потом я фильтрую в Java коде и записываю в List результат, который отдам клиенту.
А сразу правильный SQL запрос написать не судьба?
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704439
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GarrickTsyklopон и так достаёт там 200 строк. потом я фильтрую в Java коде и записываю в List результат, который отдам клиенту.
А сразу правильный SQL запрос написать не судьба?

1. Spring Data Jpa
2. запрос вида SELECT * FROM contact LIMIT ?, ?;

что другое писать?
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704443
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev, Вас несет не понятно куда. Стоит вопрос прямо и четко без всяких "Вопрос затраченных усилий, выделенного бюджета и осмысленности."

Кто сказал что тормозит что-то? кто сказал что делает оптимизация?

Leonid KudryavtsevP.S.
AFAIK "стандартный" jsp (Apache Tomcat) и так ассинхронно отдает, не дожидаясь завершения выполнения. Если только, кто нибудь, ему не помог. Например, делая не нужные шаги обработки, типа "записываю в List результат
Ну вот мне приходят на ум только HttpServletResponse.getWriter().append() или же юзать WebFlux
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704450
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop1. Spring Data Jpa
2. запрос вида SELECT * FROM contact LIMIT ?, ?;вопрос в том что ты фильтруешь на java?
почему не возложить этот фильтр на субд?
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704452
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop HttpServletResponse.getWriter().append() этим ты не отправишь клиенту.
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704453
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяTsyklop HttpServletResponse.getWriter().append() этим ты не отправишь клиенту.
Данные из "чистого" JSP/Servlet output stream'а отсылаются клиенту ассинхронно.
Завершения JSP/Servlet (при большом объеме данных) никто не ждет

AFAIK

p.s. Разумеется, если никто не помог. Например нет кривых filter работающих после JSP/servlet'а.
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704471
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop, если речь идет о том чтобы на сформированную страницу выводить данные постепенно, то это сочетание клиентских технологий (AJAX и т д) и серверных. По сути Ваш сервлет должен отдавать клиенту данные с пагинацией используя лимит и оффсет, что необходимо учесть в SQL-запросе и AJAX-запросе.
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704481
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalovто это сочетание клиентских технологий (AJAX и т д) и серверных.
вадяTsyklopда обычный клиент. пустота. просто одна jsp и все.тогда ws и будет счастье
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704488
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадятогда ws и будет счастье
TsyklopRestContoller

- в общем не понятно в чем проблема у ТС, Rest уже есть, Spring Data JPA умеет PagingAndSortingRepository , остается заставить AJAX-клиента отправлять запрос на получение данных (типа /getchunk ) и отдавать ему в ответе этот самый chunk + информацию о том что в базе еще что то осталось:

Код: javascript
1.
2.
3.
4.
{
    "chunk": [5, 17, 25],
    "hasmore": true
}
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704499
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalovостается заставить AJAX-клиента отправлять запрос на получение данныхсовсем малость...
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704530
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kachalov, условно если в таблице 100 000 000 записей то сколько мне нужно делать ajax запросов что бы получить все?
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704531
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяTsyklop HttpServletResponse.getWriter().append() этим ты не отправишь клиенту.
Но почему-то отправляю. загадка?
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704532
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяTsyklop1. Spring Data Jpa
2. запрос вида SELECT * FROM contact LIMIT ?, ?;вопрос в том что ты фильтруешь на java?
почему не возложить этот фильтр на субд?
задание такое, тестовое. Хотел как-то по красивше сделать.
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704542
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopKachalov, условно если в таблице 100 000 000 записей то сколько мне нужно делать ajax запросов что бы получить все?смотря что ты хочешь отфильтровать.

к примеру в 10 000 000 "фильтрация" / поиск с использованием like занимает 2,5 сек....
в 3 000 000 - 1,3сек
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704543
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopНо почему-то отправляю. загадка?отправишь при построении страницы, но я честно, не уверен что получится.
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704544
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopзадание такое, тестовое. Хотел как-то по красивше сделать.что-то не правильное в задании
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704546
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopВ этом запросе происходит выборка с базы и фильтрация посредством Javaещё раз
за такое надо голову сворачивать
субд для того и существуют, чтоб фильтровать - на java уже обрабатывать для вывода, но не фильровать
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704603
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopусловно если в таблице 100 000 000 записей то сколько мне нужно делать ajax запросов что бы получить все?
- это вроде арифметика, изучают в начальной школе: "количество запросов" = "количество записей" / "количество записей извлекаемых за один запрос". Или Вам нужна магия?
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704662
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дурной топик.
Пагинация не подходит?
Нужен бесконечный курсор на клиенте?
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704664
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Тьфу. Бесконечный скроллинн на клиенте?
Иначе пагинация. Но это слово почему то все избегают).
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704665
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяза такое надо голову сворачиватьа фильтры в js, java ты никогда не слышал в жизни программиста?
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704668
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123а фильтры в js, java ты никогда не слышал в жизни программиста?слышал и видел как на клиента посылали данные и фильтровали там , но как оказалось посылали очень умные и на клиенте оказывались все данные , даже не положенные для просмотра. - но цель фильтровать на клиенте -выполнена.
если у тебя туева куча данных и ты отправляешь клиенту - ты заменяешь нативные методы на непонятно что...
и непонятно кем придуманное...
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704670
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяесли у тебя туева куча данных и ты отправляешь клиентуесли ту дурак, то мы это не обсуждаем. Мы обсуждаем умных программистов с фильтрацией на клиенте за 0,01 сек.
Это клиентская сортировка и фильтрация.
Или в другой топик.
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704678
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Мы обсуждаем умных программистов с фильтрацией на клиенте за 0,01 сек.вот как раз есть параллельный топик про поиск - та же фильтрация. так вот поиск на севере у меня (по самому херовому способу с использованием like and like... ) от нажатия кнопки на клавиатуре до вывода результата на экран от 2 до 17 мс это с учетом что поиск в 28 000 записях
и ты считаешь нормальным перегонять 28000 записей на клиента?
в 3 000 000 поиск 1.2сек - ты предлогаешь гнать на клиента? это 500мег...
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704705
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Иди в другой топик. Тут клиентская и Серверная БЛ.
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704708
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Если препод скажет: "Разожгите без спичек костер"!
Ты ему три часа будешь мозги про спички промывать.
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704730
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KachalovTsyklopусловно если в таблице 100 000 000 записей то сколько мне нужно делать ajax запросов что бы получить все?
- это вроде арифметика, изучают в начальной школе: "количество запросов" = "количество записей" / "количество записей извлекаемых за один запрос". Или Вам нужна магия?
дык сколько мне нужно сделать ajax-ов что бы пройти по всем страницам? м?
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704732
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Дурной топик.
Пагинация не подходит?
Нужен бесконечный курсор на клиенте?
Это все выполняется в рамках одного запроса. Без страниц на клиенте. Таково задание, не я выдумал. Сказали что в бд 1 000 000 записей. Создать rest запрос с параметром в котором передается регулярка. В этом запросе отфильтровать все 1 000 000 строк не в бд, а в Java коде. так что как-то так...
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704734
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяна java уже обрабатывать для вывода
а разве тут не может быть фильтрации?
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704750
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopполучил первую пачку данных, отфильтровал, отправил клиенту

TsyklopЭто все выполняется в рамках одного запроса. Без страниц на клиенте. Таково задание, не я выдумал. Сказали что в бд 1 000 000 записей. Создать rest запрос с параметром в котором передается регулярка. В этом запросе отфильтровать все 1 000 000 строк не в бд, а в Java коде. так что как-то так...

- Ваши пожелания не соответствуют озвученным Вами условиям. Теоретически возможность отдавать данные пачками клиенту есть, но это противоречит условиям задачи.
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704756
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopа разве тут не может быть фильтрации?может , но только очень и очень специфичная, в приложении в твоим условиям.
твоё задание можно рассматривать только как проверка знаний, но не имеющая практического смысла.
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704766
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя, дык верно. так и есть.
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704767
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kachalov- Ваши пожелания не соответствуют озвученным Вами условиям. Теоретически возможность отдавать данные пачками клиенту есть, но это противоречит условиям задачи.

Хотел от себя сделать.
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704795
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopKachalov- Ваши пожелания не соответствуют озвученным Вами условиям. Теоретически возможность отдавать данные пачками клиенту есть, но это противоречит условиям задачи.

Хотел от себя сделать.т.е. один get запрос одной странички на экран?
Причем тут ajax?
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704803
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Petro123т.е. один get запрос одной странички на экран?
Причем тут ajax?[/quot]

Хотел сделать на AJAX-е. но передумал.
...
Рейтинг: 0 / 0
Вывод результата в процессе выполнения запроса
    #39704811
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop[quot Petro123т.е. один get запрос одной странички на экран?
Причем тут ajax?

Хотел сделать на AJAX-е. но передумал.[/quote]т.е. топик потерял смысл?
...
Рейтинг: 0 / 0
50 сообщений из 50, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Вывод результата в процессе выполнения запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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