Threads.gracefulShutdown(pool, 1000, 1000, TimeUnit.MILLISECONDS);
assertThat(pool.isTerminated()).isTrue();
assertThat(appender.getFirstLog()).isNull();
// time not enough to shutdown,call shutdownNow
appender.clearLogs();
pool = Executors.newSingleThreadExecutor();
task = new Task(logger, 1000, 0);
pool.execute(task);
Threads.gracefulShutdown(pool, 500, 1000, TimeUnit.MILLISECONDS);
assertThat(pool.isTerminated()).isTrue();