gpt4 book ai didi

javascript - 尝试通过 Redis 更好地理解 NodeJS 并使用后台任务

转载 作者:可可西里 更新时间:2023-11-01 11:35:45 26 4
gpt4 key购买 nike

我正在尝试在本地测试一个 Node 服务器,以寻找我最终想在 DigitalOcean 上部署的东西(这完全是另一回事)。我暂时成功地设置了一个带有休息端点和自签名证书的本地 Node 服务器。我的问题是我想存储我的用户可以通过点击休息端点来检索的数据。我目前的想法是,我会在服务器上运行某种后台任务,不断获取新数据,这样当一些更受欢迎的查询出现时,我就会为它们准备好最新的数据,经过清理并准备好使用。

我的问题是我不明白我应该如何运行一个后台函数,它会一遍又一遍地调用自己而最终不会导致内存问题。我在看 Bull 或 Kue,但我不确定它们是否适合我的特定需求。我之前也从未处理过 NoSQL 数据库,因此 Redis 对我来说是相当陌生的。有什么建议或指示吗?我有点不知所措,不确定从这里到哪里去,尽管我对我要尝试做的事情有一个大致的了解。

最佳答案

我想到了两个选项。如果您使用“hiredis”包,您可以在现代四核上达到 200k 查询/秒。可以想象,您每次都可以只检索最新的数据。

另一种选择涉及在启动时更新应用程序内存并每隔一段时间再次更新。对函数的递归调用:

function updateValuesFromRedis(seconds) {
return redishmgetAsyc('keyhash')
.then(function(values) {
return saveValues(values);
})
.finally(function() {
setTimeout(function() {
console.log('Updating...');
updateValuesFromRedis(seconds);
}, 1000 * seconds)
})
.catch(function(error) {
console.error('Error updating values from Redis!', error);
});
}

(function schedule() {
updateValuesFromRedis(60);
})();

关于javascript - 尝试通过 Redis 更好地理解 NodeJS 并使用后台任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34441651/

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