fix(lottery): 增加广播任务时效保护并强化命令异常处理
- 为多个广播事件添加 retryUntil 方法,设置派发后 30 秒内必须执行,否则丢弃 - 修改 LotteryDrawTickCommand handle,添加异常捕获及错误日志,保证失败时返回 FAILURE - 修改 LotteryHallCountdownCommand handle,添加异常捕获及错误日志,超时情况写入警告日志 - 针对 SettlementOrchestrator 和 DrawHallSnapshotBuilder 查询结果添加限制,防止数据量过大 - 调整计划任务 withoutOverlapping 调用,增加 expiresAt 参数避免任务锁死 - 更新 .env.example,完善本地开发与生产环境部署说明及日志配置说明 - 移除 e2e 相关测试代码、配置及依赖,精简项目体积
This commit is contained in:
@@ -243,7 +243,7 @@ return Application::configure(basePath: dirname(__DIR__))
|
||||
/** 开奖时刻后尽快跑 RNG/冷静期,避免大厅在 0:00 卡住最多 1 分钟 */
|
||||
$schedule->command('lottery:draw-tick')
|
||||
->everyTenSeconds()
|
||||
->withoutOverlapping()
|
||||
->withoutOverlapping(expiresAt: 10)
|
||||
->onOneServer();
|
||||
$schedule->command('lottery:wallet-transfer-reconcile --lookback-hours=24 --stale-minutes=15 --limit=1000')
|
||||
->everyTenMinutes()
|
||||
@@ -261,7 +261,7 @@ return Application::configure(basePath: dirname(__DIR__))
|
||||
if (config('lottery.realtime_hall_countdown', true)) {
|
||||
$schedule->command('lottery:hall-countdown')
|
||||
->everySecond()
|
||||
->withoutOverlapping()
|
||||
->withoutOverlapping(expiresAt: 5)
|
||||
->onOneServer();
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user