java - 如何使用 Reactor 调度程序优雅地关闭?
问题描述
与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()
中断内部工作人员,并忽略提交任务的状态。如何优雅地关闭调度程序,直到所有任务完成?
解决方案
推荐阅读
- graphql - 当您在 Query 和 Mutation 中有相同的概念时,是否有命名约定来避免 GraphQL 名称冲突?
- regex - 正则表达式:在第二个制表符出现之前返回一行中的所有内容
- excel-formula - 如果为空白,则使用单元格的值,如果不是空白,则在 excel 中运行此公式
- python - 按日期将文件合并为一个文件
- server-side-rendering - 使用 SSR 时,Spartacus 未从本地 JSON 文件加载翻译
- iis - 如何检查 IIS 上每个会话的内存使用情况?
- acumatica - 参考自定义父级扩展基本 DAC
- vue.js - 在 vueJS 中导航时事件单击不起作用
- regex - GCP Cloud Sql使用正则表达式提取查询持续时间
- javascript - Styled-Components - 将道具/主题传递给关键帧?