@Override public Disposable schedulePeriodically(Runnable task, long initialDelay, long period, TimeUnit unit) { return Schedulers.directSchedulePeriodically(executor, task, initialDelay, period, unit); }
@Override public Disposable schedulePeriodically(Runnable task, long initialDelay, long period, TimeUnit unit) { return Schedulers.directSchedulePeriodically(executor, task, initialDelay, period, unit); }
@Override public Disposable schedulePeriodically(Runnable task, long initialDelay, long period, TimeUnit unit) { return Schedulers.directSchedulePeriodically(pick(), task, initialDelay, period, unit); }
@Override public Disposable schedulePeriodically(Runnable task, long initialDelay, long period, TimeUnit unit) { CachedService cached = pick(); return Disposables.composite(Schedulers.directSchedulePeriodically(cached.exec, task, initialDelay, period, unit), cached); }
@Test public void scheduleInstantTaskWithDelayTest() throws Exception { try(TaskCheckingScheduledExecutor executorService = new TaskCheckingScheduledExecutor()) { CountDownLatch latch = new CountDownLatch(1); Schedulers.directSchedulePeriodically(executorService, latch::countDown, 50, 0, TimeUnit.MILLISECONDS); assertThat(latch.await(100, TimeUnit.MILLISECONDS)).isTrue(); } }
@Test public void scheduleInstantTaskTest() throws Exception { try(TaskCheckingScheduledExecutor executorService = new TaskCheckingScheduledExecutor()) { CountDownLatch latch = new CountDownLatch(1); Schedulers.directSchedulePeriodically(executorService, latch::countDown, 0, 0, TimeUnit.MILLISECONDS); assertThat(latch.await(100, TimeUnit.MILLISECONDS)).isTrue(); } }
@Test public void testDirectScheduleZeroPeriodicallyCancelsSchedulerTask() throws Exception { try(TaskCheckingScheduledExecutor executorService = new TaskCheckingScheduledExecutor()) { CountDownLatch latch = new CountDownLatch(2); Disposable disposable = Schedulers.directSchedulePeriodically(executorService, latch::countDown, 0, 0, TimeUnit.MILLISECONDS); latch.await(); disposable.dispose(); assertThat(executorService.isAllTasksCancelledOrDone()).isTrue(); } }
@Test public void testDirectSchedulePeriodicallyCancelsSchedulerTask() throws Exception { try(TaskCheckingScheduledExecutor executorService = new TaskCheckingScheduledExecutor()) { CountDownLatch latch = new CountDownLatch(2); Disposable disposable = Schedulers.directSchedulePeriodically(executorService, () -> { latch.countDown(); }, 0, 10, TimeUnit.MILLISECONDS); latch.await(); disposable.dispose(); assertThat(executorService.isAllTasksCancelled()).isTrue(); } }
@Override public Disposable schedulePeriodically(Runnable task, long initialDelay, long period, TimeUnit unit) { return Schedulers.directSchedulePeriodically(executor, task, initialDelay, period, unit); }
@Override public Disposable schedulePeriodically(Runnable task, long initialDelay, long period, TimeUnit unit) { return Schedulers.directSchedulePeriodically(executor, task, initialDelay, period, unit); }
@Override public Disposable schedulePeriodically(Runnable task, long initialDelay, long period, TimeUnit unit) { return Schedulers.directSchedulePeriodically(pick(), task, initialDelay, period, unit); }
@Override public Disposable schedulePeriodically(Runnable task, long initialDelay, long period, TimeUnit unit) { CachedService cached = pick(); return Disposables.composite(Schedulers.directSchedulePeriodically(cached.exec, task, initialDelay, period, unit), cached); }