@Override
    public void stop() throws Exception {
        isShutdownInProgress.set(true);
        // If we are shutting down we don't care about items on the queue, so bin them
        delayQueue.clear();
        if (refreshExecutorService != null) {
            LOGGER.info("Shutting down RefreshManager executor");
            refreshExecutorService.shutdownNow();
            // No need to wait for termination the stuff on the queue has no value once
            // we are shutting down
            LOGGER.info("Successfully shut down RefreshManager executor");
        }
    }
Register the refreshable so that its refreshing gets managed. Can be called many times
for the same {@link Refreshable}, e.g. to notify the {@link RefreshManager} that it was
refreshed externally.
stroom-security/stroom-security-common-impl/src/main/java/stroom/security/common/impl/RefreshManager.java