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

Я возможно не много не понял кейс: репозиторий с кэшем и БД при

запросе данных, если в кэше нет, то идёт в БД, и по получению данных прямо в цепочке кладёт данные в кэш
ну и отдаёт результат дальше подписчику по цепочке

это по твоему не верно?
т.е. запись данных из БД в кэш прямо в цепочке это сайд эффект?

3 ответов

6 просмотров

Нет. Если у тебя АПИ для кэша и БД сделаны реактивными, и ты используешь их для построения rx чейна. Я к тому, что если у тебя class N { private Data data; … void callback(Observable obs) { obs.flatMap(Data data -> { this.data = data; … } } }

Aleksandr-Yurkovskiy Автор вопроса

по этому кейсу ещё 1 вопрос может Я чего-то не знаю об RX если нужно записать данные из БД в кэш в цепочке и сделать это не в отдельной парралельной цепочке, а линейно в текущей если парралельно, то например можно делать doOnEach(item -> saveInCache(item).subscribe() ) а если линейно, то Я придумал только через flatMap(item -> saveInCache(item).andThen(Obserbable.just(item)) можно ли как-то по другому

что зн. нет данных в бд? а если есть, но устарели? имхо правильно так. д.б. 1 источник правды - это удаленный бэкенд. в бд просто кэш кот. устаревает. если кэш устарел, то обновляем. а если как вы в цепочке ложить в кэш, то зачем он тогда? если вы все равно полезли в сеть?

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

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

type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
45
А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Hello. Could you please help me with finding all coordinates within a radius using a spatial index, given that I have a table with coordinates? SET @lng = 37.57925; SET @lat ...
Rinchin G
7
Господа и дамы, поможите пожалуйста :( Запускаю notepad.exe из делфи CreateProcess(nil, PChar(FullPath), nil, nil, False, NORMAL_PRIORITY_CLASS, nil, nil, StartInfo, ProcessI...
Ivan Burnatov
7
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
I wrote frontend in flutter using dart. Where should I write backend?
𝐌𝐚𝐫𝐲
8
А че SwiftUI for Web ещё нет?
Shagit Ziganshin
7
Не получается у меня либу Zstd статически слинковать, вылазят какие-то AV Вроде example у них не сложный есть, вроде всё делаю как там... но не выходит чего-то Вопрос - если ...
notme
4
Карта сайта