private Reactor getReactor() { if (reactor == null) { final Timer timer = Timer.timer(); //getTimer(); //Todo this should work return Reactor.reactor(timeoutDuration, timer::now); } return reactor; }
/** * Creates a default reactor with timeout. * * @param timeout timeout * @return a reactor */ static Reactor reactor(final Duration timeout) { return reactor(timeout, System::currentTimeMillis); }
/** * Creates a default reactor with timeout. * * @param timeout timeout * @return a reactor */ static Reactor reactor(final Duration timeout) { return reactor(timeout, System::currentTimeMillis); }
/** * Creates a default reactor. * * @return a reactor */ static Reactor reactor() { return reactor(Duration.ofSeconds(30)); }
/** * Creates a default reactor. * * @return a reactor */ static Reactor reactor() { return reactor(Duration.ofSeconds(30)); }
public static void main(final String... args) throws Exception { //To test locally use https://hub.docker.com/r/samuelebistoletti/docker-statsd-influxdb-grafana/ final URI statsdURI = URI.create("udp://192.168.99.100:8125"); //For timer final Reactor reactor = Reactor.reactor(); /* Create the ManagedServiceBuilder which manages a clean shutdown, health, stats, etc. */ final ManagedServiceBuilder managedServiceBuilder = ManagedServiceBuilder.managedServiceBuilder() .setRootURI("/v1") //Defaults to services .setPort(8888); //Defaults to 8080 or environment variable PORT /** Enable statsD */ enableStatsD(managedServiceBuilder, statsdURI); final StatsCollector statsCollector = managedServiceBuilder.createStatsCollector(); /** Create todo impl. */ final TodoManagerImpl impl = new TodoManagerImpl(reactor, statsCollector); /** Create service bundle for internal todo manager. */ final ServiceBundle serviceBundle = managedServiceBuilder.createServiceBundleBuilder().build(); serviceBundle.addServiceObject("todoManager", impl).startServiceBundle(); /** Create TodoManager. */ final TodoManager todoManager = serviceBundle.createLocalProxy(TodoManager.class, "todoManager"); /** Start the REST/Websocket service. */ managedServiceBuilder.addEndpointService(new TodoService(todoManager)).getEndpointServerBuilder() .build().startServer(); /* Start the admin builder which exposes health end-points and swagger meta data. */ managedServiceBuilder.getAdminBuilder().build().startServer(); System.out.println("Todo Server and Admin Server started"); }
final TodoManagerImpl todoManagerImpl = new TodoManagerImpl(Reactor.reactor(), new StatsCollector() { });