gpt4 book ai didi

node.js - 什么时候对作业队列使用数据库有意义?

转载 作者:IT王子 更新时间:2023-10-29 06:00:02 25 4
gpt4 key购买 nike

我正在设计一个公司内部网站,用户可以在其中提交计算作业。我的设计中的一个重要因素是将作业保留在队列中直到它完成,即使出现系统故障也是如此。

似乎互联网反对这个想法,因为它“并不是数据库的真正目的”,更适合像 Redis 这样的键/值存储(或者使用 Redis 的作业队列,比如 Kue for Node.js ).我想我的理解是,这种设计的目的是不让数据库因读取/写入相当短暂的数据而负担过重,就像您在作业队列中发现的那样。在我的用例中,尽管数据库使用率非常低,而且数据库提供的数据持久性似乎是我在这里寻找的关键功能。

在我的阅读中,我发现一些键/值存储(如 Redis)具有持久化功能,但它并不是真正用于确保在系统出现故障时可以恢复所有数据。

我是不是漏掉了什么,或者这听起来是否正确?

最佳答案

In my reading I've found that some key/value stores, like Redis, have a persist function but it's not really built to make sure all data is recoverable in case the system goes down.

在 Redis 中,数据使用后台线程从内存持久保存到磁盘。实际上,系统停机不会损坏您的数据库,但问题是系统可能会在快照到磁盘之前或期间停机,您将丢失在上次成功快照之后创建的所有数据。

如果您可以确定您的 Redis 服务器将在 99.9% 的时间内正常运行,这不是什么大问题,但无论如何,问题是存在的。

归根结底,我最好的建议是您应该使用正确的工具来完成工作:通才数据库,无论是 NoSQL 还是 SQL,都不是为工作排队而设计的。使用一个现有的工具,它已经像 RabbitMQ 那样做了.

关于node.js - 什么时候对作业队列使用数据库有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39010320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com