与ExecutorService
with不同awaitTermination()
,dispose()
在 Reactor 中的 Scheduler 中只是shutdownNow()
在处理时调用;那么如何优雅地关闭调度程序呢?
有时我们想在所有提交的任务完成后终止我们的 executorService:
// in java
executorService.shutdown();
int retry =3;
while(executorService.isTerminated() && retry-- >0){
executorService.awaitTermination(3, TimieUnit.SECONDS);
}
if(!executorService.isTerminated()){
executorService.shutdownNow();
}
作为 Reactor 的新手,我关闭调度程序的唯一方法是调用Scheduler.dispose()
. 但似乎调度器的实现,例如Scheduler.BoundedElasticScheduler
,只是调用executor.shutdownNow()
中断内部工作人员,并忽略提交任务的状态。如何优雅地关闭调度程序,直到所有任务完成?