169 похожих чатов

Вечер в хату. Есть источник данных, из которого плохо получается

Observable стандартными средствами - скажем, какое-то рекурсивное чтение файла с очень хитрой структурой и вытаскиванием из него данных. Но сделать Observable из него нужно (одноразовый), при этом держать данные в памяти нельзя(очень много данных), их необходимо считывать из файла, сразу же обрабатывать какими-то операторами и забывать. Гарантирован всегда максимум один сабскрайбер. Как сделал я - создаю PublishSubject, его возвращаю в качестве Observable. На сабжект навешиваю .doAfterSubscribe, который при подписке форкается, начинает читать файл и кормить сабжект данными. Таким образом, чтение начинается только при подписке. Если при чтении возникла ошибка - у сабжекта вызывается onError. Использовать ReplaySubject не получится в силу большого кол-ва данных. Насколько каличен такой вариант и какие другие?

2 ответов

8 просмотров

rxjava что ли?

Если это работает - ты все сделал правильно

Похожие вопросы

Обсуждают сегодня

кто поможет крякнуть чит? (реверс инжиринг) чтобы разблокировать премиум версию
Mёdkinson Medvezhkin
39
Вопрос по организации кода. Пилю свой велосипед логгер Есть у меня множество уровней сообщений. Я набрасываю сообщения в стринглист, а когда они нужны, вызываю их через функц...
Serjone
21
А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Мне интересно, скорее людей здесь используют D, Rust, C/C++ для решения реальных прикладных задач за деньги?)
Evil Satanson
18
Has anyone experienced Sign in with Apple (with Firebase Authentication) does not provide name or email of the user even when requested with "email" and "fullName" scopes? He...
Sree (𝓣𝓪𝔂𝓵𝓸𝓻'𝓼 𝓥𝓮𝓻𝓼𝓲𝓸𝓷) 🦉 🦉
12
Ну например jcl/jvcl Они базовые общие ifdef'ы в сабмодуль выгрузили. С svn было проще. В принципе, если проекты вообще не зависят друг от друга - то нормально, но тогда заче...
Arioch The
10
Куда написать чтобы их Роскомнадзор ебнул как мтс за повышение тарифов?
Stargrapefruit
10
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
я использую код C в коде CPP, отправляю с помощью websocket данные, если сервер есть то никаких проблем нет, но если сервер падает то весь код ломается, а надо чтобы просто не...
Vladimir
1
всем вопрос. есть функция, которая иногда в линуксе валится с исключением EConvertError Invalid argument to date encode на строке Result:=LocalToUtcDateTime(FileDateToDateTime...
Handatros
10
Карта сайта