private void triggerEpzEnumeration() { EpzComputeEnumerationTaskService.triggerForAllResourcePools(this); }
private void doTrigger(Supplier<String> logSupplier, boolean postponeIfPaused) { // do nothing if refresh is currently paused if (!this.paused.compareAndSet(false, true)) { String s = logSupplier.get() + " %s"; if (postponeIfPaused) { logFine(s, "[postponed]"); invalidated.set(true); } else { logFine(s, "[not needed]"); } return; } // refresh logInfo(logSupplier); EpzComputeEnumerationTaskService.triggerForAllResourcePools(this); // re-enable after the pause this.getHost().schedule(() -> { boolean isRefreshRequired = this.invalidated.getAndSet(false); this.paused.set(false); if (isRefreshRequired) { doTrigger(() -> "Postponed refresh", false); } }, PAUSE_SECONDS, TimeUnit.SECONDS); } }