package com.firefly.utils.concurrent; import com.firefly.utils.lang.LifeCycle; import java.util.concurrent.TimeUnit; public interface Scheduler extends LifeCycle { interface Future { boolean cancel(); } Future schedule(Runnable task, long delay, TimeUnit unit); Future scheduleWithFixedDelay(Runnable task, long initialDelay, long delay, TimeUnit unit); Future scheduleAtFixedRate(Runnable task, long initialDelay, long period, TimeUnit unit); }