首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >防止因承诺解决而造成的过载

防止因承诺解决而造成的过载
EN

Stack Overflow用户
提问于 2017-09-25 17:21:51
回答 1查看 178关注 0票数 0

我需要使用猫鼬来执行很多findOneAndUpdate()操作,因为没有办法批量执行原子操作。因此,我在for循环中创建了一个允诺数组,该数组将在之后被解析。不幸的是,这需要2-3秒,在此期间,我的Express应用程序无法处理任何新的请求。

代码:

代码语言:javascript
运行
复制
const promiseArray = []
for (let i = 0; i < 1500; i++) {
  const p = PlayerProfile.findOneAndUpdate(filter, updateDoc)
  promiseArray.push(p)
}
return Promise.all(promiseArray).then((values) => {
  // Process the values
})

问题:

如何避免在解决这个承诺时,我的Express应用程序对新请求完全没有响应?

更多上下文信息:

我试图用原子操作更新和返回许多文档,因此产生了大的for循环。它基本上是选择一个文档并为这个文档设置一个锁。

EN

回答 1

Stack Overflow用户

发布于 2017-09-25 17:28:17

尝试使用update选项:

代码语言:javascript
运行
复制
PlayerProfile.update(filter, updateDoc, { multi: true }, function(err, result) {
  // Do something
})

签名是:

代码语言:javascript
运行
复制
Model.update(conditions, update, options, callback)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46410797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档