feat: 将卡状态任务类型接入队列管理、生命周期和初始化器

queue_manager.go: allTaskTypes 追加 TaskTypePollingCardStatus,注释更正为5个队列
lifecycle_service.go: getEnabledTaskTypes 和 calcInitialDelay 新增 card_status 条件
initializer.go: initBatch 新增 CardStatusCheckInterval 块,以 LastCardStatusCheckAt 为基准写入分片队列

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
2026-04-15 12:22:42 +08:00
parent c7f486ae09
commit 647d78309d
3 changed files with 16 additions and 1 deletions

View File

@@ -18,6 +18,7 @@ var allTaskTypes = []string{
constants.TaskTypePollingCarddata,
constants.TaskTypePollingPackage,
constants.TaskTypePollingProtect,
constants.TaskTypePollingCardStatus,
}
// dequeueScript Lua 脚本原子出队ZRANGEBYSCORE + ZREM 服务端原子执行)
@@ -97,7 +98,7 @@ func (m *PollingQueueManager) Requeue(ctx context.Context, cardID uint, taskType
}).Err()
}
// RemoveFromAllQueues 从所有分片的所有4个队列(含protect)移除指定卡
// RemoveFromAllQueues 从所有分片的所有5个队列(realname/carddata/package/protect/card_status)移除指定卡
// 修复 Bug3旧实现漏掉 protect 队列
func (m *PollingQueueManager) RemoveFromAllQueues(ctx context.Context, cardID uint) error {
member := fmt.Sprintf("%d", cardID)