首页 > 解决方案 > 使用 PM2 集群模式部署的多个 API(Express Node JS)实例之间的竞争条件

问题描述

我使用Express JS开发了REST API端点,并使用PM2 集群模式部署在服务器上。目前有 10 个 API 项目实例在服务器上运行。

在一个端点中,我首先检查记录是否已经存在,如果不存在则插入新记录,否则更新同一记录。我在 API 项目中使用MongoDbmongoose作为 ORM。

目前,当同时使用相同的参数调用端点两次时,将创建 2 条新记录。我希望它只创建 1 条记录,因为我正在检查 API,如果记录已经创建,那么不要再次插入它,只需更新相同的记录。

请建议解决此问题的方法,因为重复记录被插入 DB 。

标签: node.jsmongodbmongooserace-conditionpm2

解决方案


推荐阅读