本文整理汇总了Java中reactor.core.publisher.ConnectableFlux.connect方法的典型用法代码示例。如果您正苦于以下问题:Java ConnectableFlux.connect方法的具体用法?Java ConnectableFlux.connect怎么用?Java ConnectableFlux.connect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类reactor.core.publisher.ConnectableFlux
的用法示例。
在下文中一共展示了ConnectableFlux.connect方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: test4
import reactor.core.publisher.ConnectableFlux; //导入方法依赖的package包/类
@Test
public void test4() {
SomeFeed<PriceTick> feed = new SomeFeed<>();
Flux<Object> priceFlux = Flux.create(emitter ->
{
SomeListener l = new SomeListener() {
@Override
public void priceTick(PriceTick event) {
emitter.next(event);
}
@Override
public void error(Throwable throwable) {
emitter.error(throwable);
}
};
feed.register(l);
}, FluxSink.OverflowStrategy.LATEST);
ConnectableFlux<Object> connectableFlux = priceFlux.publish();
connectableFlux.connect();
connectableFlux.subscribe(System.out::println);
}
示例2: advancedConnectable
import reactor.core.publisher.ConnectableFlux; //导入方法依赖的package包/类
@Test
public void advancedConnectable() throws InterruptedException {
Flux<Integer> source = Flux.range(1, 3)
.doOnSubscribe(s -> System.out.println("subscribed to source"));
ConnectableFlux<Integer> co = source.publish();
co.subscribe(System.out::println, e -> {}, () -> {});
co.subscribe(System.out::println, e -> {}, () -> {});
System.out.println("done subscribing");
Thread.sleep(500);
System.out.println("will now connect");
co.connect();
}
示例3: test
import reactor.core.publisher.ConnectableFlux; //导入方法依赖的package包/类
@Test
public void test() throws InterruptedException {
SomeFeed<PriceTick> feed = new SomeFeed<>();
Flux<PriceTick> flux =
Flux.create(emitter ->
{
SomeListener listener = new SomeListener() {
@Override
public void priceTick(PriceTick event) {
emitter.next(event);
if (event.isLast()) {
emitter.complete();
}
}
@Override
public void error(Throwable e) {
emitter.error(e);
}
};
feed.register(listener);
}, FluxSink.OverflowStrategy.LATEST);
ConnectableFlux connectable = flux.publish();
connectable.subscribe(x -> System.out.println("1st " + x));
Thread.sleep(1000);
connectable.subscribe(x -> System.out.println("2nd " + x));
connectable.connect();
}
示例4: testMultiReceiver
import reactor.core.publisher.ConnectableFlux; //导入方法依赖的package包/类
@Test
public void testMultiReceiver() throws Exception {
Hooks.onOperatorDebug();
try {
ConnectableFlux<?> t = Flux.empty()
.then(Mono.defer(() -> {
throw new RuntimeException();
})).flux().publish();
t.map(d -> d).subscribe(null,
e -> Assert.assertTrue(e.getSuppressed()[0].getMessage().contains
("\t|_\tFlux.publish")));
t.filter(d -> true).subscribe(null, e -> Assert.assertTrue(e.getSuppressed()[0].getMessage().contains
("\t\t|_\tFlux.publish")));
t.distinct().subscribe(null, e -> Assert.assertTrue(e.getSuppressed()[0].getMessage().contains
("\t\t\t|_\tFlux.publish")));
t.connect();
}
finally {
Hooks.resetOnOperatorDebug();
}
}
示例5: create
import reactor.core.publisher.ConnectableFlux; //导入方法依赖的package包/类
@Test
public void create() throws InterruptedException {
SomeFeed<PriceTick> feed = new SomeFeed<>();
Flux<PriceTick> flux =
Flux.create(emitter ->
{
SomeListener listener = new SomeListener() {
@Override
public void priceTick(PriceTick event) {
emitter.next(event);
if (event.isLast()) {
emitter.complete();
}
}
@Override
public void error(Throwable e) {
emitter.error(e);
}};
feed.register(listener);
}, FluxSink.OverflowStrategy.BUFFER);
ConnectableFlux<PriceTick> hot = flux.publish();
hot.subscribe(priceTick -> System.out.printf("%s %4s %6.2f%n", priceTick
.getDate(), priceTick.getInstrument(), priceTick.getPrice()));
hot.subscribe(priceTick -> System.out.println(priceTick.getSequence() +
": " + priceTick.getInstrument()));
hot.connect();
Thread.sleep(5000);
}