You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于AWS持久化存储的滑动延迟与定时器可靠实现方案问询

滑动定时器可靠实现方案分析

需求背景

  • 触发带ID的event-type-A事件时,创建包含该ID及60分钟定时器的记录
  • 触发带ID的event-type-B事件时,更新对应ID的记录,重置60分钟定时器
  • 记录到期时,向SQS队列发送消息

功能要求

  • 输入新UUID时,创建60分钟定时器
  • 输入已存在的UUID时,重置其60分钟定时器
  • 基础设施重启后,定时器不丢失且可恢复执行
  • 定时器到期后尽快触发动作

核心问题

如何可靠实现上述功能?应用服务器可能无法及时处理到期定时器,但恢复后必须执行;所有定时器信息需存储在应用服务器外部,并发定时器最多可达10k个。

现有方案及痛点

  • Redis/Elasticache TTL方案:应用服务器响应event-type-A创建/更新内存记录,订阅键过期事件并发送至SQS。但该方案数据存储不健壮,Elasticache更新可能丢失记录;应用服务器不可用时会遗漏定时器;且Redis过期事件触发不精确。

备选方案困境

  • DynamoDB TTL方案:TTL有效期可达数天,但可靠性不如Redis TTL
  • DynamoDB+定时Lambda方案:Lambda需每分钟scan全表判断是否到期(lastUpdatedTime超过60分钟),无法使用query,因为ID可能对应多个定时器且PK/SK不可修改
  • SQS延迟队列方案:SQS最大延迟时间仅15分钟,无法满足60分钟的定时器需求

内容的提问来源于stack exchange,提问作者Greg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 15:43:12