Internet说使用数据库作为队列是一种反模式,您应该使用(rabbitmq或beanstalked等)
但我想把所有的请求都存起来。因此,我可以在以后查找它们花费了多长时间,记录了任何失败的尝试或错误或注释,谁请求了它,使用了什么元数据,最终结果是什么等等。
看起来所有队列库都没有此选项。您不能持久化数据以便以后查询它。
我想要那些队列做什么,但是有一个“持久化到数据库”选项。这不存在吗?人们如何处理这个问题?是否使用队列库并在请求完成时将所有请求信息复制到数据库中?
(我使用的语言/数据库是任何东西,任何最适合这个的东西)
最佳答案
如果你想记录请求,以及元数据所花费的时间等,那么就这样做-当你知道相关结果时,将其记录到数据库中,并按你所期望的那样运行你的分析查询。
不将数据库用作临时存储的原因是,在高流量下,搜索和锁定未处理的作业,然后在它们完成时更新或删除它们,可能需要很大的努力。如果不从活动表中删除作业,则尤其如此,因此必须搜索更多已完成的作业以找到尚未完成的作业。
关于database - 持久作业队列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32235769/