RxJava2: Merge/concat two streams
I have two data sources which are used in the following manner.
For any data that is needed by a consumer:
Check if data is there is CACHE. If yes, provide data.
Regardless of 1, then goto REMOTE and fetch the data. Note: To
create the remote observable,Observable.fromCallable()
is being
used.Update the DB and then provide the updated data to the consumer.
Now the above was achieved by concat()
, ObservableCache
and ObservableRemote
.
But now there is another requirement.
I would like to keep the stream alive until the observable
is disposed by the consumer.
And that is because, there might be an update to the Cache, which I would like to automatically be sent to the consumer.
Would concat()
above, keep the stream alive until the observable
is disposed by the consumer?
If that is not the case, could someone provide a solution to this problem?
Also, since I would like to keep the stream alive, until the observable
is disposed by the consumer, is there a way to terminate the stream once it is disposed?
Thanks.
rx-java2 rx-android reactive
add a comment |
I have two data sources which are used in the following manner.
For any data that is needed by a consumer:
Check if data is there is CACHE. If yes, provide data.
Regardless of 1, then goto REMOTE and fetch the data. Note: To
create the remote observable,Observable.fromCallable()
is being
used.Update the DB and then provide the updated data to the consumer.
Now the above was achieved by concat()
, ObservableCache
and ObservableRemote
.
But now there is another requirement.
I would like to keep the stream alive until the observable
is disposed by the consumer.
And that is because, there might be an update to the Cache, which I would like to automatically be sent to the consumer.
Would concat()
above, keep the stream alive until the observable
is disposed by the consumer?
If that is not the case, could someone provide a solution to this problem?
Also, since I would like to keep the stream alive, until the observable
is disposed by the consumer, is there a way to terminate the stream once it is disposed?
Thanks.
rx-java2 rx-android reactive
It seems you are reinventing github.com/NYTimes/Store
– Maxim Volgin
Nov 27 '18 at 9:57
add a comment |
I have two data sources which are used in the following manner.
For any data that is needed by a consumer:
Check if data is there is CACHE. If yes, provide data.
Regardless of 1, then goto REMOTE and fetch the data. Note: To
create the remote observable,Observable.fromCallable()
is being
used.Update the DB and then provide the updated data to the consumer.
Now the above was achieved by concat()
, ObservableCache
and ObservableRemote
.
But now there is another requirement.
I would like to keep the stream alive until the observable
is disposed by the consumer.
And that is because, there might be an update to the Cache, which I would like to automatically be sent to the consumer.
Would concat()
above, keep the stream alive until the observable
is disposed by the consumer?
If that is not the case, could someone provide a solution to this problem?
Also, since I would like to keep the stream alive, until the observable
is disposed by the consumer, is there a way to terminate the stream once it is disposed?
Thanks.
rx-java2 rx-android reactive
I have two data sources which are used in the following manner.
For any data that is needed by a consumer:
Check if data is there is CACHE. If yes, provide data.
Regardless of 1, then goto REMOTE and fetch the data. Note: To
create the remote observable,Observable.fromCallable()
is being
used.Update the DB and then provide the updated data to the consumer.
Now the above was achieved by concat()
, ObservableCache
and ObservableRemote
.
But now there is another requirement.
I would like to keep the stream alive until the observable
is disposed by the consumer.
And that is because, there might be an update to the Cache, which I would like to automatically be sent to the consumer.
Would concat()
above, keep the stream alive until the observable
is disposed by the consumer?
If that is not the case, could someone provide a solution to this problem?
Also, since I would like to keep the stream alive, until the observable
is disposed by the consumer, is there a way to terminate the stream once it is disposed?
Thanks.
rx-java2 rx-android reactive
rx-java2 rx-android reactive
edited Nov 27 '18 at 6:47
Shreya Prajapati
8411
8411
asked Nov 27 '18 at 1:47
SunnySunny
2,710144578
2,710144578
It seems you are reinventing github.com/NYTimes/Store
– Maxim Volgin
Nov 27 '18 at 9:57
add a comment |
It seems you are reinventing github.com/NYTimes/Store
– Maxim Volgin
Nov 27 '18 at 9:57
It seems you are reinventing github.com/NYTimes/Store
– Maxim Volgin
Nov 27 '18 at 9:57
It seems you are reinventing github.com/NYTimes/Store
– Maxim Volgin
Nov 27 '18 at 9:57
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53491602%2frxjava2-merge-concat-two-streams%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53491602%2frxjava2-merge-concat-two-streams%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
It seems you are reinventing github.com/NYTimes/Store
– Maxim Volgin
Nov 27 '18 at 9:57