NodeJs如何实现异步锁

问题描述

有个api的功能是:当前提交的信息是b且数据库已经有了a信息,即触发指定任务c(a和b不分顺序,只要是组合存在即触发c)。
使用的数据库是mongodb

问题出现的环境背景及自己尝试过哪些方法

但是这个api请求处理比较耗时,a和b同时请求api的话,在逻辑判断时b没有找到a,a也没有找到b,然后大家各自同时绕过判断条件进行了入库,没有触发指定的任务c

你期待的结果是什么?

请教如何在费时的异步时,对a和b请求进行处理呢,比如加程序锁和队列尝试这种?

具体技术方案希望指点,谢谢。

阅读 5.5k
2 个回答

用mongodb的原子操作findAndModify应该是可以的
new传false读取修改前的数据,来判断是否符合条件

在A和B插入数据写个异步回调函数来判断A和B有没有完成数据插入然后执行C不就行了咯

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题