基于时间的到期/记录/事件/操作消息的生成

问题描述

我正在创建一个任务分配给多个用户的脚本。任务已分配给一个用户,如果在接下来的30分钟内不接受该任务,则需要重新分配给另一个用户。

实际上,我为此使用了DynamoDB,其中每个任务分配都在30分钟后附加到TTL。当TTL过期时,我通过Stream处理并检查它是否被接受。如果没有,我将重新分配并在表中创建一个具有30分钟TTL的新条目。

我错过了TTL的一个概念,即它不会实时过期商品,并且可能最多需要48小时。

还有其他智能方式来处理此类用例吗?目前,我将其实现为-

  • 添加一个索引,其中TTL作为排序键,event_type = Task作为分区键
  • 每分钟查询所有TTL小于当前时期的记录,并批量删除这些记录。

这里有两个挑战-

  • 首先,由于event_type在整个表中是恒定的,因此所有数据都在索引的一个分区上,这对于大容量而言是不利的
  • 这是一种轮询机制,实际上我需要扫描所有记录,这也不是可扩展的解决方案

我正在研究是否可以通过推送机制巧妙地做到这一点。有解决此用例的指针或帮助吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)