我正在 php/mysql 上构建一个平台,该平台允许用户使用产品的一部分。基本上,他们选择他们想要出价的百分比以及他们想要出价的加价,例如 1.2。
我遇到的问题是,如果同一产品同时有多个投标,我需要将投标排队,以便在处理时只有有效的投标通过。例如,如果有 20% 的可用价值为 1.2,并且两个用户同时以 1.2 出价 20%,则每个出价的过程将是: 1----- 选择当前出价 2----- php 处理确定出价是否仍然可用 3----- 出价
这里的问题是,如果两个“检查是否可用”都发生在任何一个“出价”之前,那么两个出价都将通过并有效地导致股票问题。
有没有办法让这个过程排队,所以在下一个可以运行之前,整个步骤 1-3 都发生在投标中。
我最初的想法是使用缓存表来存储所有出价,然后每隔几秒运行一次 cron,它将按照缓存表中的 ID 顺序进行处理并相应通知,但这似乎在高流量系统上可能不可行因为服务器会被锤击。
非常感谢任何帮助