DEV Community · Show DEV9/4 03:1053 分
拍卖UI简单,零时刻决策难
The auction UI was easy. Deciding what happens at zero wasn't. published
作者在开发BidPage(一个用于在线拍卖的小工具)时,发现界面简单,但拍卖结束时的处理很复杂。关键问题包括:谁有权关闭拍卖、并发处理、最后时刻出价、支付失败等。作者强调不能依赖浏览器倒计时,而应以服务器时钟和数据库为准。他们采用原子更新将拍卖状态从live转为closing,确保只有一个worker能关闭。此外,反狙击功能(最后两分钟出价延长拍卖)使简单的定时任务失效,需要worker每次读取最新状态。出价接受和时间延长必须在同一事务中,以保证一致性。文章分享了这些设计决策,但代码为简化版。