Assert.isTrue(period > 0);
//任何异常不会中断schedule执行
Runnable task = new DelegatingErrorHandlingRunnable(this, TaskUtils.LOG_AND_SUPPRESS_ERROR_HANDLER);
scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(new CustomizableThreadFactory(
"JdkExecutorJob"));
//scheduleAtFixedRatefixRate() 固定任务两次启动之间的时间间隔.
//scheduleAtFixedDelay() 固定任务结束后到下一次启动间的时间间隔.
scheduledExecutorService.scheduleAtFixedRate(task, initialDelay, period, TimeUnit.SECONDS);