diff --git a/rxjava/pom.xml b/rxjava/pom.xml new file mode 100644 index 0000000000..63aa1f127e --- /dev/null +++ b/rxjava/pom.xml @@ -0,0 +1,35 @@ + + + 4.0.0 + + com.baeldung + rxjava + 1.0-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + + + + + + + io.reactivex + rxjava + ${rx.java.version} + + + + + 1.2.5 + + + \ No newline at end of file diff --git a/rxjava/src/main/java/com/baelding/rxjava/HotObservableBackpressure.java b/rxjava/src/main/java/com/baelding/rxjava/HotObservableBackpressure.java new file mode 100644 index 0000000000..bc4f6710e5 --- /dev/null +++ b/rxjava/src/main/java/com/baelding/rxjava/HotObservableBackpressure.java @@ -0,0 +1,30 @@ +package com.baelding.rxjava; + + +import rx.schedulers.Schedulers; +import rx.subjects.PublishSubject; + +public class HotObservableBackPressure { + public static void main(String[] args) throws InterruptedException { + PublishSubject source = PublishSubject.create(); + + source + .observeOn(Schedulers.computation()) + .subscribe(v -> compute(v), Throwable::printStackTrace); + + for (int i = 0; i < 1_000_000; i++) { + source.onNext(i); + } + + Thread.sleep(10_000); + } + + private static void compute(Integer v) { + try { + System.out.println("compute integer v: "+ v); + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } +}