/**
*
*/
package cn.bran.japid.template;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
/**
* An ScheduledThreadPoolExecutor that uses one thread and cancels previous future work when new job is scheduled
*
* @author bran
*
*/
public class AmmendableScheduledExecutor extends ScheduledThreadPoolExecutor {
ScheduledFuture<?> schedule;
public AmmendableScheduledExecutor() {
super(1);
}
public void schedule(Runnable r) {
if (schedule != null) {
schedule.cancel(false);
}
schedule = super.schedule(r, 2, TimeUnit.SECONDS);
}
}