【发布时间】:2017-10-28 01:54:41
【问题描述】:
我有一个有趣的问题需要解决。我在 Postgres 中有一张表 A。该表被视为具有一组任务的队列。 ID 是 Postgres 中的增量 ID。
我想要一个包含当前处理位置 (ID) 和最大 ID 数量的指标。这两个数字每秒都在累积。
有没有有效的方法?
我认为最简单的方法是每 10 秒执行一次这个 SQL 查询(不定):
从表中选择 blablah 然后按 asc 限制 1 个订单
获取最小的 id 并使用相同的方法获取最大的 id。
但是这个命令很昂贵。有没有更好的方法来做到这一点?
【问题讨论】:
-
有什么理由不使用 SQS 而不是 RDS?
-
单个事务包括从队列中读取任务、更新 2 个表(业务关系)和删除该任务。所以我们利用 ACID 使用了 3 个表。
-
我可能会通过使用 Dynamo 及其事务库来改进这个设计。不确定到目前为止是否有人使用过 Dynamo 事务库。
标签: amazon-web-services amazon-rds amazon-cloudwatch