问题描述
我正在尝试实现一个简单的api请求,当用户发送发布请求时,该请求会增加服务器上的个人余额。
现在,我担心有人会尝试同时发送两次邮寄请求,这将导致交易进行两次。
addFreeze:async ctx=>{
const { id,isAdmin = false,profile} = await strapi.plugins[
'users-permissions'
].services.jwt.getToken(ctx);
const {amount} = ctx.request.body
const balance = await strapi.query('balance').model.findOne(
{_id: "5f319bd650d74b153c8329dd"})
if(balance.earnings-balance.frozen > amount){
return ctx.forbidden({"message":"Insufficient balance"})
}
const result = await strapi.query('balance').model.findOneAndUpdate(
{_id: "5f319bd650d74b153c8329dd"},{
$inc:{
frozen:1000
}
});
return ctx.send({"message":result})
这可能是一种假设情况,但也可以扩展到其他几个地方。所以我的问题是有没有办法在stradi mongodb中添加异步锁。对于如何在Stradi中实现此目标或实际上是否可能是一个问题,我完全空白。
如果我的问题有疑问,请在评论中突出显示。这些类型的问题通常会被否决。如果有任何缺陷,我将很乐意对其进行编辑。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)