如何计算谁先接受订单?

有一些用户。他们可以执行订单。订单可以发送给所有用户。

用户收到订单后,他可以在1分钟内接受或拒绝该订单。

如果用户接受订单,我会将信息存储在MySQL中。

id | order_id | user_id | timestamp
1    1          1         12345679
2    1          2         59589333

一分钟后,没人接受订单。

之后,我的服务将处理所有存储的数据并首先计算谁接受了订单。

问题是用户可以接受另一个订单更快,但是由于互联网连接或其他原因导致日期失真。

有两种方法:

一个(在瞬间接受时计算客户端的时间):

  1. 用户接受订单
  2. 获取当前时间戳
  3. 将当前时间戳发送到服务器
  4. 将当前时间戳存储在Db中

秒(计算在Db中存储数据的瞬间服务器上的时间)

  1. 用户接受订单
  2. 发送数据到服务器
  3. 获取当前时间戳
  4. 将当前时间戳存储在Db中

因此,不能保证按创建的时间戳对用户进行排序。我不能分配订单第一位用户,因为我对时间没有信心。

评论