gpt4 book ai didi

php - CakePhp:防止同时插入相同信息的重复调用

转载 作者:行者123 更新时间:2023-11-29 11:19:19 25 4
gpt4 key购买 nike

我使用 CakePhp 作为中间 API,它可以同步不同市场中的库存并保存订单历史记录。当在一个市场下订单时,它会更新另一市场上的库存,反之亦然。现在,我收到来自其中一个市场的通知,告诉我的 API 刚刚收到订单。问题是此通知会同时发送两次,且信息完全相同。我的 API 同时运行这两个单独的调用并生成两个插入。我确实有一个代码,用于检查传入订单中的 Order_ID 是否在我保存插入的订单历史记录的表中不重复。但由于调用是在完全相同的时间进行的,因此当代码检查 Order_ID 是否存在时,它不存在,因此它会创建两个不同的插入,并且订单会重复。

通知几乎相同,我收到此消息:

{  
"resource":"\/orders\/order_id",
"user_id":"user_id",
"topic‌​":"orders",
"applicat‌​ion_id":idhere,
"atte‌​mpts":1,
"sent":"2016‌​-07-26T14:34:00.342Z‌​",
"received":"2016-0‌​7-26T14:34:00.338Z"
}‌

一个通知和另一个通知具有相同的信息,但第一个通知的发送和接收之间的差异不到 1 秒。这样,我使用 order_id 调用订单中的信息并将其保存到历史表中。

我需要的是一种方法来延迟发生,以便我的检查工作正常,或者另一种方法来检查重复的 order_id。值得注意的是,它不是在一次调用中进行两次插入。有两个单独的通知调用,这使得我的代码很难在重复调用时真正获得通知。我可以尝试什么想法吗?

最佳答案

它有点难看,但您可以在历史表中的 Order_ID 列上创建唯一索引。

这样具有相同Order_ID的插入将不会成功。

关于php - CakePhp:防止同时插入相同信息的重复调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39213030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com