code: private ScheduledExecutorService initializeHouseKeepingExecutorService()
     {
        if (config.getScheduledExecutor() == null) {
           final ThreadFactory threadFactory = Optional.ofNullable(config.getThreadFactory()).orElseGet(() -> new DefaultThreadFactory(poolName + " housekeeper", true));
           final ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1, threadFactory, new ThreadPoolExecutor.DiscardPolicy());
           executor.setExecuteExistingDelayedTasksAfterShutdownPolicy(false);
           executor.setRemoveOnCancelPolicy(true);
           return executor;
        }
        else {
           return config.getScheduledExecutor();
        }
     }
docs: Create/initialize the Housekeeping service {@link ScheduledExecutorService}.  If the user specified an Executor
  to be used in the {@link HikariConfig}, then we use that.  If no Executor was specified (typical), then create
  an Executor and configure it.
  
  @return either the user specified {@link ScheduledExecutorService}, or the one we created