Skip to content

Commit fbe9f73

Browse files
authored
[ISSUE #9721] Fix TimerDequeueGetService thread not exiting after shutdown
- Add isRunningDequeue() check in checkDequeueLatch while loop - Exit loop immediately when service is stopped to avoid thread blocking - Ensure moveReadTime is not executed during shutdown process - Improve system stability and reliability
1 parent 8fc57f1 commit fbe9f73

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

store/src/main/java/org/apache/rocketmq/store/timer/TimerMessageStore.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -953,6 +953,11 @@ public void checkDequeueLatch(CountDownLatch latch, long delayedTime) throws Exc
953953
}
954954
int checkNum = 0;
955955
while (true) {
956+
if (!isRunningDequeue()) {
957+
LOGGER.info("Not Running dequeue, skip checkDequeueLatch for delayedTime:{}", delayedTime);
958+
break;
959+
}
960+
956961
if (dequeuePutQueue.size() > 0
957962
|| !checkStateForGetMessages(AbstractStateService.WAITING)
958963
|| !checkStateForPutMessages(AbstractStateService.WAITING)) {

0 commit comments

Comments
 (0)