@Override public void start() throws Exception { // Scheduler scheduler = io.vertx.rxjava.core.RxHelper.scheduler(vertx); // Create a periodic event stream using Vertx scheduler Observable<Long> o = Observable. timer(0, 1000, TimeUnit.MILLISECONDS, scheduler); o.subscribe(item -> { System.out.println("Got item " + item); }); } }
@Test public void testScheduledBuffer() { vertx.runOnContext(v -> { long startTime = System.currentTimeMillis(); Context initCtx = Vertx.currentContext(); Observable .timer(10, 10, TimeUnit.MILLISECONDS, io.vertx.rxjava.core.RxHelper.scheduler(vertx)) .buffer(100, TimeUnit.MILLISECONDS, io.vertx.rxjava.core.RxHelper.scheduler(vertx)) .take(10) .subscribe(new Observer<List<Long>>() { private int eventCount = 0; public void onNext(List<Long> value) { eventCount++; assertEquals(initCtx.getDelegate(), Vertx.currentContext().getDelegate()); } public void onError(Throwable e) { fail("unexpected failure"); } public void onCompleted() { long timeTaken = System.currentTimeMillis() - startTime; assertEquals(10, eventCount); assertTrue("Was expecting to have time taken | " + timeTaken + " - 1000 | < 200", Math.abs(timeTaken - 1000) < 1000); testComplete(); } }); }); await(); }
@Test public void testScheduledTimer() { vertx.runOnContext(v -> { long startTime = System.currentTimeMillis(); Context initCtx = Vertx.currentContext(); Observable.timer(100, 100, TimeUnit.MILLISECONDS, io.vertx.rxjava.core.RxHelper.scheduler(vertx)).take(10).subscribe(new Observer<Long>() { public void onNext(Long value) { assertEquals(initCtx.getDelegate(), Vertx.currentContext().getDelegate()); } public void onError(Throwable e) { fail("unexpected failure"); } public void onCompleted() { long timeTaken = System.currentTimeMillis() - startTime; assertTrue("Was expecting to have time taken | " + timeTaken + " - 1000 | < 200", Math.abs(timeTaken - 1000) < 1000); testComplete(); } }); }); await(); }
Observable<String> observable = consumer.toObservable(); observable. buffer(500, TimeUnit.MILLISECONDS, io.vertx.rxjava.core.RxHelper.scheduler(vertx)). map(samples -> samples.stream().reduce("", (a, b) -> a + b)). subscribe(observer);