@Override public void accept(Cancel handle) { try { sendHeartbeats(); } finally { if (_lifecycle.isActive()) { _timer.runAfter(_heartbeatTask, _heartbeatTimeout, TimeUnit.MILLISECONDS, Result.ignore()); } } } }
private void onSubscribeFail(Throwable e, long timeout) { log.finer(e.toString()); log.log(Level.FINEST, e.toString(), e); ServicesAmp manager = ServicesAmp.current(); Timers timer = manager.service("timer:///").as(Timers.class); timer.runAfter(h->resubscribe(timeout), timeout, TimeUnit.SECONDS, Result.ignore()); }
@Override public void afterBatch(StubAmp stub) { if (isSaveRequired() && _serviceSelf != null && _isCheckpointStarted.compareAndSet(false, true)) { if (_journalDelay > 0) { _timerService.runAfter(_startSaveRef, _journalDelay, TimeUnit.MILLISECONDS, Result.ignore()); } else { startSave(); } } }
@OnInit public void init() { timers.runAfter(this::fire, 2, TimeUnit.SECONDS, Result.ignore()); }
/** * Join completion */ private void onJoinComplete(Integer count, Result<Boolean> result) { if (count == null) { count = 0; } _joinState = _joinState.onJoinComplete(count, this); updatePodsFromHeartbeat(); waitForHubHeartbeat(count, result); if (_joinLifecycle.toActive()) { _timer.runAfter(_joinTask, getJoinTimeout(), TimeUnit.MILLISECONDS, Result.ignore()); } }
@Override public void accept(Cancel handle) { if (! _joinLifecycle.isActive()) { return; } try { if (isJoinRequired()) { _lastJoinTime = CurrentTime.currentTime(); _joinClient.start(x->updateRack(x), Result.of(count->onJoinComplete(count, Result.ignore()))); } } finally { _timer.runAfter(_joinTask, getJoinTimeout(), TimeUnit.MILLISECONDS, Result.ignore()); } } }
@Test public void test() throws InterruptedException { _timer.runAfter(t -> State.add("\n timer!"), 2, TimeUnit.SECONDS, Result.ignore()); TestTime.addTime(1, TimeUnit.SECONDS); Thread.sleep(100); Assert.assertEquals("", State.state()); TestTime.addTime(2, TimeUnit.SECONDS); Thread.sleep(100); Assert.assertEquals("\n timer!", State.state()); }
@Test public void test(@Service("timer:") Timers timer) throws InterruptedException { timer.runAfter(t -> State.add("\n timer!"), 2, TimeUnit.SECONDS, Result.ignore()); TestTime.addTime(1, TimeUnit.SECONDS); Thread.sleep(100); Assert.assertEquals("", State.state()); TestTime.addTime(2, TimeUnit.SECONDS); Thread.sleep(100); Assert.assertEquals("\n timer!", State.state()); } }