为了减少读取时间,我对存储在 MongoDB 中的一些数据进行了非规范化。每当我执行写操作时都需要刷新它,以使其与底层数据保持一致。
为了避免任何竞争条件,我想将其分离到一个单线程的后台任务中。在 Java 中,我会简单地将 Command 对象放入队列中,并让读取器线程一次处理一个。但是在 Node 中,每当我执行任何类型的数据库操作时,它都会异步发生,因此我会遇到竞争条件问题。
我想做的例子:
应用程序线程
- 插入新的“投标”
- 将“BidPlaced”对象放入队列
后台线程
- 流行“出价”
- 从所有出价中查找最大值(价格)。更新 Auction.highestBid。
我仍然在思考 Node 的并发模型(以防你看不出来!)。我如何在 Node.js 中实现这样的目标。