public synchronized void executeAfterDelay(final Runnable task, long redeliveryDelay) {
        TimerTask timerTask = new SchedulerTimerTask(task);
        timer.schedule(timerTask, redeliveryDelay);
    }
@Test
    public void executeAfterDelay() throws Exception {
        final CountDownLatch latch = new CountDownLatch(1);
        scheduler.executeAfterDelay(new CountDownRunnable(latch), 10);
        assertTrue(latch.await(5000, TimeUnit.MILLISECONDS));
    }