【发布时间】:2015-11-21 00:47:10
【问题描述】:
互联网说将数据库用于队列是一种反模式,您应该使用(RabbitMQ 或 Beanstalked 等)
但我希望存储所有请求。所以我可以稍后查找他们花了多长时间,任何失败的尝试或错误或记录的注释,谁请求它以及使用什么元数据,最终结果是什么等。
看起来所有队列库都没有这个选项。您不能将数据持久化以允许您以后查询。
我想要这些队列的功能,但带有“持久化到数据库”选项。这不存在吗?人们如何处理这个问题?您是否使用队列库并在请求完成时将所有请求信息复制到数据库中?
(我使用的语言/数据库是任何东西,只要最适合这个)
【问题讨论】:
-
Redis 在这方面非常出色——而且速度很快。
-
@MarkSetchell redis 不能很好地存储大量数据(每一个请求,而不是删除旧请求)。你也根本不能很好地查询redis(显示用户1在过去一个月里提出的所有请求)
-
您需要多少任务吞吐量?
-
@D-side 我不需要大量的吞吐量。我的请求数量很少,但需要详细说明他们在做什么、错误处理、注释等
-
如果您正确构建队列表,它们就不是反模式。如果您想存储工作项目,它们是一个很好的解决方案。你的头像很搞笑。
标签: database message-queue priority-queue task-queue