Size: a a a

2020 March 17

SP

Sam Panza in pro.jvm
Quantum Harmonizer
Эт нормально — создавать стрим, коллектить, снова создавать стрим? Данных немного, вопрос стиля.
Я бы не творил такой фигни, если бы был Pair<Stream<T>, Stream<T>> Stream#partition(Predicate), но его нет, есть Collectors.partitioningBy.
Вай нот, если в коллекторе есть логика, которую нельзя выразить стримовыми промежуточными операциям
источник

VS

Vladimir Sitnikov in pro.jvm
Quantum Harmonizer
Эт нормально — создавать стрим, коллектить, снова создавать стрим? Данных немного, вопрос стиля.
Я бы не творил такой фигни, если бы был Pair<Stream<T>, Stream<T>> Stream#partition(Predicate), но его нет, есть Collectors.partitioningBy.
Так есть же streamex: https://github.com/amaembo/streamex/blob/master/CHEATSHEET.md#basic-collectors

Не работает?
источник

VB

Viacheslav Blinov in pro.jvm
а чем оно отличается от обычного коллектора? судя по имплементации это тоже самое
источник

Е

Евгений in pro.jvm
Quantum Harmonizer
Эт нормально — создавать стрим, коллектить, снова создавать стрим? Данных немного, вопрос стиля.
Я бы не творил такой фигни, если бы был Pair<Stream<T>, Stream<T>> Stream#partition(Predicate), но его нет, есть Collectors.partitioningBy.
используй спарк, там есть пары
источник

Е

Евгений in pro.jvm
или напиши свою пару и свой мап
источник

Е

Евгений in pro.jvm
потом заредьюсишь по ключу
источник

Е

Евгений in pro.jvm
вот тебе и партишонинг
источник

VS

Vladimir Sitnikov in pro.jvm
Viacheslav Blinov
а чем оно отличается от обычного коллектора? судя по имплементации это тоже самое
Кхм. Это действительно collector. Похоже, streamex отличается от обычного тем, что там «Short circuiting reduction» (см http://amaembo.github.io/streamex/javadoc/one/util/streamex/package-summary.html )
источник

VB

Viacheslav Blinov in pro.jvm
> For some operations like groupingBy it's impossible to create a short-circuiting collector even if the downstream is short-circuiting, because it's not known whether all the possible groups are already created.

тоже самое что я написал в самом начале
источник

V

Vladimir in pro.jvm
Quantum Harmonizer
Эт нормально — создавать стрим, коллектить, снова создавать стрим? Данных немного, вопрос стиля.
Я бы не творил такой фигни, если бы был Pair<Stream<T>, Stream<T>> Stream#partition(Predicate), но его нет, есть Collectors.partitioningBy.
Я так понимаю типа такого вопрос https://stackoverflow.com/questions/24474838/can-i-duplicate-a-stream-in-java-8 ?
источник

V

Vladimir in pro.jvm
По факту основная проблема будет в невозможности раздедения терминального оператора
источник

NB

Nikita Bezverkhy in pro.jvm
всем привет
есть следующая задача: эндпоинт, который принимает JSON и как-то обрабатывает значения на любой степени вложенности
например

{
 "DASHBOARD": "view_dashboard",
 "DEVICES": {
   "CREATE": "c_device",
   "LIST": "l_device",
   "UPDATE": "u_device",
   "DELETE": "d_device"
 }
}


и я верну что-то вроде:

{
 "DASHBOARD": true,
 "DEVICES": {
   "LIST": true,
   "UPDATE": true
 }
}


я конечно могу намутить обход json-чика, но может есть готовые какие-нибудь решения для такого?
источник

EB

Evgeny Balakin in pro.jvm
Всем привет! кто хорош в spring batch job? Есть короче задача, идет запрос от клиента. В процесее этого запроса идет последовательное общение к нескольким урлам стороннего сервиса. не хочу делать синхронно, ибо каждый урл стороннего сервиса может отрабатывать минуту, а всего таких запросов около 7

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

Еще вопрос по премежуточным данным. То есть допустим степу 3 нужна инфа, которая получается в результате выполенения степ 1. норм ли сохранять в бд эту инфу, а не JobContext-е?
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶 in pro.jvm
норм
норм
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶 in pro.jvm
но вообще это не на батч больше похоже, а на stream processing(Kafka Streams и прочее подобное)
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶 in pro.jvm
можно и на camel'е сделать, если это привычнее
источник

EB

Evgeny Balakin in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
но вообще это не на батч больше похоже, а на stream processing(Kafka Streams и прочее подобное)
ну так то кафка стримы тут то вообще ни к месту. По сути можно и обычный async заюзать, но не хочется чтобы треды висели по несколько минут
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶 in pro.jvm
Evgeny Balakin
ну так то кафка стримы тут то вообще ни к месту. По сути можно и обычный async заюзать, но не хочется чтобы треды висели по несколько минут
да батч тоже не особо - слишком большой оверхед на таких маленьких задачах
источник

QH

Quantum Harmonizer in pro.jvm
Vladimir
Я так понимаю типа такого вопрос https://stackoverflow.com/questions/24474838/can-i-duplicate-a-stream-in-java-8 ?
В принципе да. В зависимости от предиката пустить элементы в разные стримы.
источник

QH

Quantum Harmonizer in pro.jvm
Я одного не понимаю: «принципиалтно невозможно не коллектить», окей, соглашуть, но sorted() именно это и делает? Просто внутри.
источник