ScheduledThreadPoolExecutor is not flexible enough, we must use two Executors in ReconnectionDaemon