gpt4 book ai didi

javascript - mongodb 在给定的时间间隔更新文档

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

我正在实现“最低出价拍卖”系统。用户将设置底价、 Markdown 幅度和 Markdown 间隔。例如用户设置底价=1000$, Markdown 金额=100$, Markdown 间隔=1小时,3小时后价格为700$,3.2小时后价格仍为700$,4小时后它将是 600 美元...

这些价​​格存储在 mongodb 数据库中,需要查询,因此在数据库查询后在 node.js 中计算当前价格非常昂贵。有没有办法告诉 mongodb 在给定的时间间隔更新每个文档?我是否应该实现一个 node.js 微服务来跟踪所有这些计时器,并在需要时更新文档?在实践中,这些时间实际上会很长(通常是几个小时),但我想跟踪其中的很多时间。

谢谢你,马特奥

最佳答案

如果您使用的是 nodejs,则可以使用 Agenda 来执行此操作:https://github.com/rschmukler/agenda

因此您将定义一个任务来降低所有商品的价格:

var mongoConnectionString = "mongodb://127.0.0.1/agenda";
var agenda = new Agenda({db: {address: mongoConnectionString}});

agenda.define('reduce prices', {priority: 'high', concurrency: 1}, function(job, done) {
// .. do your db query to reduce the price here
done(); // dont forget to call done!
});

然后每小时调用一次:

agenda.on('ready', function() {
agenda.every('60 minutes', 'reduce prices');
agenda.start();
});

就是这样。如果您正在使用 express 并将其放入您的 express 应用程序中,那么您不需要运行单独的 cron 任务 - 但是此查询将与您的应用程序的其余部分在相同的进程上运行,因此取决于有多少“产品”您 Markdown 的对象,这可能是也可能不是问题。

关于javascript - mongodb 在给定的时间间隔更新文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33682582/

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