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 QBit callback based on promise created. * * @param promiseConsumer promise consumer * @param <T> T * @return QBit callback */ public <T> Callback<T> callback(final Consumer<Promise<T>> promiseConsumer) { Promise<T> promise = reactor.promise(); promiseConsumer.accept(promise); return Reakt.convertPromise(promise); }
public void process() { time = timer.time(); reactor.process(); processHandler.ifPresent(Runnable::run); stats.clientProxyFlush(); healthServiceClient.ifPresent(ClientProxy::clientProxyFlush); servicesToFlush.forEach((service) -> { try { ServiceProxyUtils.flushServiceProxy(service); } catch (Exception ex) { logger.error("Unable to flush service on behalf of service " + serviceName, ex); } }); }
@Override public void process() { copyTaskQueues(); currentTime = timeSource.getTime(); processDeferRuns(); processRepeatingTasks(); processFireOnceTasks(); processAsyncPromisesReturns(); }
@Override public <T> Promise<Void> any(final Duration timeout, final List<Promise<T>> promises) { return addPromiseToProcessingQueue( wrapAllOrAnyAndMakeInvokeable(anyReplay(timeout, timeSource.getTime(), promises)) ); }
@Override public <T> Promise<T> promise(final Duration timeout) { final ReplayPromise<T> promise = replayPromise(timeout, timeSource.getTime()); return addPromiseToProcessingQueue(promise); }
public TodoManagerImpl(Reactor reactor, StatsCollector statsCollector) { this.reactor = reactor; this.statsCollector = statsCollector; /** Send stat count i.am.alive every three seconds. */ this.reactor.addRepeatingTask(Duration.ofSeconds(3), () -> statsCollector.increment("todoservice.i.am.alive")); this.reactor.addRepeatingTask(Duration.ofSeconds(1), statsCollector::clientProxyFlush); }
@Override public void process() { copyTaskQueues(); currentTime = timeSource.getTime(); processDeferRuns(); processRepeatingTasks(); processFireOnceTasks(); processAsyncPromisesReturns(); }
/** * Creates a default reactor with timeout. * * @param timeout timeout * @return a reactor */ static Reactor reactor(final Duration timeout) { return reactor(timeout, System::currentTimeMillis); }
@Override public PromiseHandler<T> invokeWithReactor(final Reactor reactor, Duration timeout) { final BasePromise<T> reactorPromise = (BasePromise<T>) reactor.promise(timeout); copyPromiseFieldsToReactorPromise(reactorPromise); return this; }
@Override public <T> Promise<Void> all(final Duration timeout, final List<Promise<T>> promises) { return addPromiseToProcessingQueue( wrapAllOrAnyAndMakeInvokeable(allReplay(timeout, timeSource.getTime(), promises)) ); }
@Override public <T> Promise<T> promise() { final ReplayPromise<T> promise = replayPromise(defaultTimeout, timeSource.getTime()); return addPromiseToProcessingQueue(promise); }
@QueueCallback({EMPTY, IDLE, LIMIT}) public void process() { reactor.process(); }
/** * Creates a default reactor with timeout. * * @param timeout timeout * @return a reactor */ static Reactor reactor(final Duration timeout) { return reactor(timeout, System::currentTimeMillis); }
@Override public PromiseHandler<T> invokeWithReactor(final Reactor reactor) { final BasePromise<T> reactorPromise = (BasePromise<T>) reactor.promise(); copyPromiseFieldsToReactorPromise(reactorPromise); return this; }
@Override public <T> Promise<T> promise(final Duration timeout) { final ReplayPromise<T> promise = replayPromise(timeout, timeSource.getTime()); return addPromiseToProcessingQueue(promise); }
/** * Creates a default reactor. * * @return a reactor */ static Reactor reactor() { return reactor(Duration.ofSeconds(30)); }
@Override public PromiseHandler<T> invokeWithReactor(final Reactor reactor, Duration timeout) { final BasePromise<T> reactorPromise = (BasePromise<T>) reactor.promise(timeout); copyPromiseFieldsToReactorPromise(reactorPromise); return this; }
/** * Creates a default reactor. * * @return a reactor */ static Reactor reactor() { return reactor(Duration.ofSeconds(30)); }
@Override public PromiseHandler<T> invokeWithReactor(final Reactor reactor) { final BasePromise<T> reactorPromise = (BasePromise<T>) reactor.promise(); copyPromiseFieldsToReactorPromise(reactorPromise); return this; }