本文整理了Java中reactor.core.scheduler.Schedulers.workerSchedulePeriodically()
方法的一些代码示例,展示了Schedulers.workerSchedulePeriodically()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Schedulers.workerSchedulePeriodically()
方法的具体详情如下:
包路径:reactor.core.scheduler.Schedulers
类名称: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);
}
内容来源于网络,如有侵权,请联系作者删除!