fix: 倒计时卡住根因修复 — Redis TTL缓冲+前端watchdog兜底
根因:CountdownService用while(sleep(1))阻塞循环推送倒计时, Redis key TTL=wait_time,3台同时运行时worker争用导致循环慢于 Redis过期时间,key先过期→循环中断→倒计时冻结在当前秒数。 修复: 1. Redis TTL加10秒缓冲(waitTime+10),防止key提前过期 2. 前端加watchdog兜底:服务端2秒没推送就本地继续倒计时
This commit is contained in:
@@ -27,7 +27,7 @@ class CountdownService
|
||||
//处理倒计时
|
||||
$waitTime = intval($tableInfo['wait_time']);
|
||||
//将倒计时用作是redis的过期时间
|
||||
RedisUtil::save('countdown_'.$numberTabInfo['id'],$waitTime,$waitTime);
|
||||
RedisUtil::save('countdown_'.$numberTabInfo['id'],$waitTime,$waitTime + 10);
|
||||
while($waitTime >= 0){
|
||||
$countdown = Cache::store('redis')->get('countdown_'.$numberTabInfo['id']);
|
||||
if ($countdown){
|
||||
|
||||
Reference in New Issue
Block a user