fix: 企业微信审批同步任务在已停用应用下无限堆积
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m21s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m21s
恢复任务每 2 分钟为未终态审批投递详情同步,已停用应用的审批同步必然失败并重试 25 次, 且同一审批单每轮重复投递,测试环境 wecom:approval 队列积压约 15 万任务,在用应用的审批结果迟迟不生效。 - 轮询与结果未知恢复只取启用中企业微信应用的审批 - 轮询投递的详情同步按审批单加 10 分钟唯一性锁,最多重试 3 次 - 应用不存在或已停用时同步任务直接结束不重试 - 恢复定时任务加唯一性,队列拥堵时不再堆积重复恢复任务 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1045,6 +1045,8 @@ func registerAsynqScheduleTasks(asynqScheduler *asynq.Scheduler, auditArchiveEna
|
||||
nil,
|
||||
asynq.MaxRetry(3),
|
||||
asynq.Timeout(2*time.Minute),
|
||||
// 同一时刻只保留一个恢复任务:队列拥堵时不再堆积重复的恢复任务。
|
||||
asynq.Unique(2*time.Minute),
|
||||
asynq.Queue(constants.QueueForTaskType(constants.TaskTypeWeComApprovalRecovery)),
|
||||
)); err != nil {
|
||||
return fmt.Errorf("注册企业微信审批主动恢复定时任务失败: %w", err)
|
||||
|
||||
Reference in New Issue
Block a user