Skip to content

Instantly share code, notes, and snippets.

@kungfoo
Last active November 15, 2019 08:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kungfoo/497c3981462c798c382c04d81fae5f02 to your computer and use it in GitHub Desktop.
Save kungfoo/497c3981462c798c382c04d81fae5f02 to your computer and use it in GitHub Desktop.
Taking up to n results with time based eviction
package io.beekeeper.sample;
import java.util.concurrent.TimeUnit;
import com.codahale.metrics.health.HealthCheck.Result;
import io.reactivex.Observable;
import io.reactivex.schedulers.Schedulers;
import io.reactivex.subjects.ReplaySubject;
import io.reactivex.subjects.Subject;
class Blub {
private final Subject<Result> lastResults = ReplaySubject.createWithTime(5, TimeUnit.MINUTES,
Schedulers.computation());
public Observable<Result> lastResults(int n) {
return lastResults.takeLast(n);
}
public Observable<Result> lastFailures(int n) {
return lastResults
.filter(result -> !result.isHealthy())
.takeLast(n);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment