reactor.core.scheduler.Schedulers.workerSchedulePeriodically()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(5.1k)|赞(0)|评价(0)|浏览(158)

本文整理了Java中reactor.core.scheduler.Schedulers.workerSchedulePeriodically()方法的一些代码示例,展示了Schedulers.workerSchedulePeriodically()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Schedulers.workerSchedulePeriodically()方法的具体详情如下:
包路径:reactor.core.scheduler.Schedulers
类名称:Schedulers
方法名:workerSchedulePeriodically

Schedulers.workerSchedulePeriodically介绍

暂无

代码示例

代码示例来源:origin: reactor/reactor-core

@Override
public Disposable schedulePeriodically(Runnable task,
    long initialDelay,
    long period,
    TimeUnit unit) {
  return Schedulers.workerSchedulePeriodically(exec,
      tasks,
      task,
      initialDelay,
      period,
      unit);
}

代码示例来源:origin: reactor/reactor-core

@Override
public Disposable schedulePeriodically(Runnable task,
    long initialDelay,
    long period,
    TimeUnit unit) {
  return Schedulers.workerSchedulePeriodically(cached.exec,
      tasks,
      task,
      initialDelay,
      period,
      unit);
}

代码示例来源:origin: reactor/reactor-core

@Test
public void testWorkerScheduleSupportZeroPeriod() throws InterruptedException {
  try(TaskCheckingScheduledExecutor executorService = new TaskCheckingScheduledExecutor()) {
    CountDownLatch latch = new CountDownLatch(2);
    Disposable.Composite tasks = Disposables.composite();
    Disposable disposable = Schedulers.workerSchedulePeriodically(executorService, tasks,
        latch::countDown, 0, 0, TimeUnit.MILLISECONDS);
    latch.await();
    disposable.dispose();
    Thread.sleep(100);
    int tasksBefore = executorService.tasks.size();
    Thread.sleep(100);
    int tasksAfter = executorService.tasks.size();
    assertThat(tasksAfter).isEqualTo(tasksBefore);
    assertThat(tasks.size()).isEqualTo(0);
  }
}

代码示例来源:origin: reactor/reactor-core

@Test
public void testWorkerScheduleSupportZeroPeriodWithDelayPeriod() {
  try(TaskCheckingScheduledExecutor executorService = new TaskCheckingScheduledExecutor()) {
    Disposable.Composite tasks = Disposables.composite();
    Disposable disposable = Schedulers.workerSchedulePeriodically(executorService, tasks,
        () -> { }, 1000, 0, TimeUnit.MILLISECONDS);
    disposable.dispose();
    assertThat(executorService.isAllTasksCancelled()).isTrue();
  }
}

代码示例来源:origin: reactor/reactor-core

@Test
public void testWorkerSchedulePeriodicallyCancelsSchedulerTask() throws Exception {
  try(TaskCheckingScheduledExecutor executorService = new TaskCheckingScheduledExecutor()) {
    AtomicInteger zeroDelayZeroPeriod = new AtomicInteger();
    AtomicInteger zeroPeriod = new AtomicInteger();
    AtomicInteger zeroDelayPeriodic = new AtomicInteger();
    AtomicInteger periodic = new AtomicInteger();
    Disposable.Composite tasks = Disposables.composite();
    Schedulers.workerSchedulePeriodically(executorService, tasks,
        () -> zeroDelayZeroPeriod.incrementAndGet(), 0, 0, TimeUnit.MINUTES);
    Schedulers.workerSchedulePeriodically(executorService, tasks,
        () -> zeroPeriod.incrementAndGet(), 1, 0, TimeUnit.MINUTES);
    Schedulers.workerSchedulePeriodically(executorService, tasks,
        () -> zeroDelayPeriodic.incrementAndGet(), 0, 1, TimeUnit.MINUTES);
    Schedulers.workerSchedulePeriodically(executorService, tasks,
        () -> periodic.incrementAndGet(), 1, 1, TimeUnit.MINUTES);
    Thread.sleep(100);
    tasks.dispose();
    assertThat(executorService.isAllTasksCancelledOrDone())
        .as("all tasks cancelled or done").isTrue();
    //when no initial delay, the periodic task(s) have time to be schedule. A 0 period results in a lot of schedules
    assertThat(zeroDelayZeroPeriod).as("zeroDelayZeroPeriod").hasPositiveValue();
    assertThat(zeroDelayPeriodic).as("zeroDelayPeriodic").hasValue(1);
    //the below have initial delays and as such shouldn't have had time to schedule
    assertThat(zeroPeriod).as("zeroDelayPeriodic").hasValue(0);
    assertThat(periodic).as("periodic").hasValue(0);
  }
}

代码示例来源:origin: reactor/reactor-core

@Test
public void testWorkerScheduleRejectedWithDisposedParent() {
  try(TaskCheckingScheduledExecutor executorService = new TaskCheckingScheduledExecutor()) {
    Disposable.Composite tasks = Disposables.composite();
    tasks.dispose();
    assertThatExceptionOfType(RejectedExecutionException.class)
        .as("zero period, zero delay")
        .isThrownBy(() -> Schedulers.workerSchedulePeriodically(executorService, tasks, () -> {}, 0, 0, TimeUnit.MILLISECONDS));
    assertThatExceptionOfType(RejectedExecutionException.class)
        .as("zero period, some delay")
        .isThrownBy(() -> Schedulers.workerSchedulePeriodically(executorService, tasks, () -> {}, 10, 0, TimeUnit.MILLISECONDS));
    assertThatExceptionOfType(RejectedExecutionException.class)
        .as("periodic, zero delay")
        .isThrownBy(() -> Schedulers.workerSchedulePeriodically(executorService, tasks, () -> {}, 0, 10, TimeUnit.MILLISECONDS));
    assertThatExceptionOfType(RejectedExecutionException.class)
        .as("periodic, some delay")
        .isThrownBy(() -> Schedulers.workerSchedulePeriodically(executorService, tasks, () -> {}, 10, 10, TimeUnit.MILLISECONDS));
    assertThat(executorService.tasks).isEmpty();
  }
}

代码示例来源:origin: io.projectreactor/reactor-core

@Override
public Disposable schedulePeriodically(Runnable task,
    long initialDelay,
    long period,
    TimeUnit unit) {
  return Schedulers.workerSchedulePeriodically(cached.exec,
      tasks,
      task,
      initialDelay,
      period,
      unit);
}

代码示例来源:origin: io.projectreactor/reactor-core

@Override
public Disposable schedulePeriodically(Runnable task,
    long initialDelay,
    long period,
    TimeUnit unit) {
  return Schedulers.workerSchedulePeriodically(exec,
      tasks,
      task,
      initialDelay,
      period,
      unit);
}

相关文章