我有一个我需要解决的有趣问题。我在Postgres有一张桌子A.该表被视为具有一组任务的队列。 ID是Postgres中的增量ID。
我希望有一个指标来包含当前处理的位置(ID)和最大ID数。这两个数字每秒都在积累。
有没有一种有效的方法呢?
最简单的方法是每10秒执行一次SQL查询(不同):
从表中选择blablah然后按asc
限制1个订单获取最小的id并使用相同的方法获得最大的id。
但这个命令很贵。有没有更好的方法呢?
答案 0 :(得分:1)
在表中插入新记录时,返回记录ID。提取记录时也一样。您可以将其缓存在内存,文件,不同的数据库表等中。然后运行计划任务以将这些值作为自定义指标发布到CloudWatch。
示例(非常简单)插入新记录时返回ID的SQL语句:
INSERT INTO table (name) OUTPUT Inserted.ID VALUES('bob');