Java Examples for reactor.core.processor.RingBufferWorkProcessor
The following java examples will help you to understand the usage of reactor.core.processor.RingBufferWorkProcessor. These source code samples are taken from different open source projects.
Example 1
| Project: spring-xd-master File: GPFDistServer.java View source code |
private HttpServer<Buffer, Buffer> createProtocolListener() throws Exception {
final Stream<Buffer> stream = Streams.wrap(processor).window(flushCount, flushTime, TimeUnit.SECONDS).flatMap(new Function<Stream<Buffer>, Publisher<Buffer>>() {
@Override
public Publisher<Buffer> apply(Stream<Buffer> t) {
return t.reduce(new Buffer(), new BiFunction<Buffer, Buffer, Buffer>() {
@Override
public Buffer apply(Buffer prev, Buffer next) {
return prev.append(next);
}
});
}
}).process(RingBufferWorkProcessor.<Buffer>create("gpfdist-sink-worker", 8192, false));
HttpServer<Buffer, Buffer> httpServer = NetStreams.httpServer(new Function<HttpServerSpec<Buffer, Buffer>, HttpServerSpec<Buffer, Buffer>>() {
@Override
public HttpServerSpec<Buffer, Buffer> apply(HttpServerSpec<Buffer, Buffer> server) {
return server.codec(new GPFDistCodec()).listen(port);
}
});
httpServer.get("/data", new ReactorChannelHandler<Buffer, Buffer, HttpChannel<Buffer, Buffer>>() {
@Override
public Publisher<Void> apply(HttpChannel<Buffer, Buffer> request) {
request.responseHeaders().removeTransferEncodingChunked();
request.addResponseHeader("Content-type", "text/plain");
request.addResponseHeader("Expires", "0");
request.addResponseHeader("X-GPFDIST-VERSION", "Spring XD");
request.addResponseHeader("X-GP-PROTO", "1");
request.addResponseHeader("Cache-Control", "no-cache");
request.addResponseHeader("Connection", "close");
return request.writeWith(stream.take(batchCount).timeout(batchTimeout, TimeUnit.SECONDS, Streams.<Buffer>empty()).concatWith(Streams.just(Buffer.wrap(new byte[0])))).capacity(1l);
}
});
httpServer.start().awaitSuccess();
log.info("Server running using address=[" + httpServer.getListenAddress() + "]");
localPort = httpServer.getListenAddress().getPort();
return httpServer;
}Example 2
| Project: spring-cloud-stream-modules-master File: GpfdistServer.java View source code |
private HttpServer<Buffer, Buffer> createProtocolListener() throws Exception {
final Stream<Buffer> stream = Streams.wrap(processor).window(flushCount, flushTime, TimeUnit.SECONDS).flatMap(new Function<Stream<Buffer>, Publisher<Buffer>>() {
@Override
public Publisher<Buffer> apply(Stream<Buffer> t) {
return t.reduce(new Buffer(), new BiFunction<Buffer, Buffer, Buffer>() {
@Override
public Buffer apply(Buffer prev, Buffer next) {
return prev.append(next);
}
});
}
}).process(RingBufferWorkProcessor.<Buffer>create("gpfdist-sink-worker", 8192, false));
HttpServer<Buffer, Buffer> httpServer = NetStreams.httpServer(new Function<HttpServerSpec<Buffer, Buffer>, HttpServerSpec<Buffer, Buffer>>() {
@Override
public HttpServerSpec<Buffer, Buffer> apply(HttpServerSpec<Buffer, Buffer> server) {
return server.codec(new GpfdistCodec()).listen(port);
}
});
httpServer.get("/data", new ReactorChannelHandler<Buffer, Buffer, HttpChannel<Buffer, Buffer>>() {
@Override
public Publisher<Void> apply(HttpChannel<Buffer, Buffer> request) {
request.responseHeaders().removeTransferEncodingChunked();
request.addResponseHeader("Content-type", "text/plain");
request.addResponseHeader("Expires", "0");
request.addResponseHeader("X-GPFDIST-VERSION", "Spring Dataflow");
request.addResponseHeader("X-GP-PROTO", "1");
request.addResponseHeader("Cache-Control", "no-cache");
request.addResponseHeader("Connection", "close");
return request.writeWith(stream.take(batchCount).timeout(batchTimeout, TimeUnit.SECONDS, Streams.<Buffer>empty()).concatWith(Streams.just(Buffer.wrap(new byte[0])))).capacity(1l);
}
});
httpServer.start().awaitSuccess();
log.info("Server running using address=[" + httpServer.getListenAddress() + "]");
localPort = httpServer.getListenAddress().getPort();
return httpServer;
}