@Override public <T> ListenableFuture<T> submitScheduled(Callable<T> task, long delayInMs) { ArgumentVerifier.assertNotNull(task, "task"); ListenableFutureTask<T> ft = new ListenableFutureTask<>(false, task, this); doSchedule(ft, ft, delayInMs); return ft; }
@Override public <T> ListenableFuture<T> submitScheduled(Callable<T> task, long delayInMs) { ArgumentVerifier.assertNotNull(task, "task"); ListenableFutureTask<T> ft = new ListenableFutureTask<>(false, task, this); doSchedule(ft, ft, delayInMs); return ft; }
@Override public void schedule(Runnable task, long delayInMs) { ArgumentVerifier.assertNotNull(task, "task"); ArgumentVerifier.assertNotNegative(delayInMs, "delayInMs"); doSchedule(task, null, delayInMs); }
@Override public void schedule(Runnable task, long delayInMs) { ArgumentVerifier.assertNotNull(task, "task"); ArgumentVerifier.assertNotNegative(delayInMs, "delayInMs"); doSchedule(task, null, delayInMs); }
protected void doSchedule(Object taskKey, Runnable task, ListenableFuture<?> lf, long delayInMs) { LimiterContainer lc = getLimiterContainer(taskKey); lc.limiter.doSchedule(lc.wrap(task), lf, delayInMs); }
protected void doSchedule(Object taskKey, Runnable task, ListenableFuture<?> lf, long delayInMs) { LimiterContainer lc = getLimiterContainer(taskKey); lc.limiter.doSchedule(lc.wrap(task), lf, delayInMs); }