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;
}