refactor(scheduler): 优化调度器优雅停机机制

- 添加优雅停机等待时间常量配置
- 调度线程增加优雅停机等待逻辑
- 修正日志记录器声明为final
- 更新文档中的TODO状态为ING状态
3.3.2-release
xuxueli 2 months ago
parent 009e122cbc
commit ff4248c743

@ -2748,8 +2748,10 @@ public void execute() {
- 2、【优化】调度线程事务提交逻辑调整避免边界条件下线程异常退出增强健壮性
- 3、【优化】调度日志列表排序逻辑优化提升易读性
- 4、【优化】表格交互优化优化分页显示配置禁用分页循环多选行操作优化/默认单选;
- 5、【TODO】任务调度触发后分批批量更新提升调度性能
- 6、【TODO】优雅停机服务端停机检测时间轮非空sleep 5s客户端停机检测任务运行中server停止后sleep5s
- 5、【ING】优雅停机服务端停机检测时间轮非空sleep 5s
- 客户端停机检测任务运行中server停止后sleep5s
- 6、【TODO】任务调度触发后分批批量更新提升调度性能
### TODO LIST

@ -24,7 +24,14 @@ public class JobScheduleHelper {
private static final Logger logger = LoggerFactory.getLogger(JobScheduleHelper.class);
public static final long PRE_READ_MS = 5000; // pre read
/**
* pre-read time for scheduler, increase efficiency
*/
public static final long PRE_READ_MS = 5000;
/*
* elegant shutdown wait seconds
*/
private static final long ELEGANT_SHUTDOWN_WAITING_SECONDS = 10;
private Thread scheduleThread;
private Thread ringThread;
@ -316,7 +323,7 @@ public class JobScheduleHelper {
}
}
// if has ring data
// if has ring data, wait for elegent shutdown
boolean hasRingData = false;
if (MapTool.isNotEmpty(ringData)) {
for (int second : ringData.keySet()) {
@ -329,7 +336,7 @@ public class JobScheduleHelper {
}
if (hasRingData) {
try {
TimeUnit.SECONDS.sleep(8);
TimeUnit.SECONDS.sleep(ELEGANT_SHUTDOWN_WAITING_SECONDS);
} catch (Throwable e) {
logger.error(e.getMessage(), e);
}

@ -14,7 +14,7 @@ import java.util.concurrent.atomic.AtomicInteger;
* @author xuxueli 2018-07-03 21:08:07
*/
public class JobTriggerPoolHelper {
private static Logger logger = LoggerFactory.getLogger(JobTriggerPoolHelper.class);
private static final Logger logger = LoggerFactory.getLogger(JobTriggerPoolHelper.class);
// ---------------------- trigger pool ----------------------

Loading…
Cancel
Save