同步数据库更新/检查投标平台


Synchronizing database update/checking for bidding platform

我正在php/mysql上构建一个平台,允许用户但占产品的百分比。基本上,他们选择他们想要出价的百分比以及他们想要出价的加价价格,例如 1.2。

我遇到的问题是,如果同一产品同时有多个出价,我需要对出价进行排队,以便在处理时只有有效的出价通过。例如,如果有 20% 的可用值为 1.2,并且两个用户同时出价 20% 的值为 1.2,则每个出价的流程为:1----- 选择当前出价2----- php 处理以确定出价是否仍然可用3-----出价

这里的问题是,如果两个"检查是否可用"都发生在任何一个"出价"之前,那么两个出价都将通过并有效地导致库存问题。

有没有办法对这个过程进行排队,以便在下一个步骤可以运行之前,整个步骤1-3

发生出价。

我最初的想法是使用缓存表来存储所有出价,然后每隔几秒钟运行一次 cron,它将按照缓存表中的 ID 顺序进行处理并相应地通知,但这似乎在高流量系统上可能不可行,因为服务器会被锤击它。

任何帮助非常感谢

如果两个出价永远不会相同,我会在数据层解决它。根据item_id、bid_value和其他需要唯一性的内容,在出价表上创建一个唯一键。第二次插入将失败,您可以让用户知道他们被打到柱子上

我在PHP级别解决了这个问题,首先将出价注入为"接受的出价",以便任何后续出价都会失败。然后我运行了检查以查看出价是否正常,如果不是,出价将被删除,如果是,则表格会根据新出价的要求进行更新。