public void shutdown(long awaitTerminateMillis) {
        this.scheduledExecutorService.shutdown();
        ThreadUtils.shutdownGracefully(this.consumeExecutor, awaitTerminateMillis, TimeUnit.MILLISECONDS);
    }
@Test
    public void testShutdown() throws IllegalAccessException {
        popService.shutdown(3000L);
        Field scheduledExecutorServiceField = FieldUtils.getDeclaredField(popService.getClass(), "scheduledExecutorService", true);
        Field consumeExecutorField = FieldUtils.getDeclaredField(popService.getClass(), "consumeExecutor", true);
        ScheduledExecutorService scheduledExecutorService = (ScheduledExecutorService) scheduledExecutorServiceField.get(popService);
        ThreadPoolExecutor consumeExecutor = (ThreadPoolExecutor) consumeExecutorField.get(popService);
        assertTrue(scheduledExecutorService.isShutdown());
        assertTrue(scheduledExecutorService.isTerminated());
        assertTrue(consumeExecutor.isShutdown());
        assertTrue(consumeExecutor.isTerminated());
    }