业务需求是:如果一台机器绑定了N个零部件,那么生产一台机器就需要扣减N次库存。现在使用bulkWrite不起作用。那么就需要循环遍历访问N次数据库,如果有M个用户同时扣减库存操作,就会向数据库发送N*M次请求。假设20个用户同时操作机器扣减库存,每个机器都有50个零部件,就会有1000个并发数据库请求连接。这看起来很恐怖呀,。想不通为什么不支持bulkWrite呢?而且循环遍历还需要考虑事务问题,那现在这种情况该用什么方案呢
await db.collection('parts').bulkWrite(bulkOps);
[{
"updateOne": {
"filter": {
"_id": "680a1abfe46ff36aedac8b5a"
},
"update": {
"$set": {
"stock_quantity": 33,
"is_warning": true
}
}
}
}, {
"updateOne": {
"filter": {
"_id": "680a1ab4e46ff36aedac8ac4"
},
"update": {
"$set": {
"stock_quantity": 22,
"is_warning": false
}
}
}
}, {
"updateOne": {
"filter": {
"_id": "680a1aa918322a1179878204"
},
"update": {
"$set": {
"stock_quantity": 11,
"is_warning": true
}
}
}
}]
b***@163.com (作者)
我对云函数的理解并不深刻,那么我请教一下,并发成百上千个数据库访问,云函数执行会有问题吗?如果每个数据库请求阻塞等待结果,单个云函数运行有时间限制吗?
2025-04-26 13:36
b***@163.com (作者)
回复 b***@163.com: serverless的云数据库访问连接并发数有上限标准吗,还是说会动态扩展无需关心并发数
2025-04-26 13:40