日期:2014-05-16  浏览次数:20465 次

关于秒杀程序设计
目前的想法是这样:

      当用户参与秒杀后 把所有用户插入数据库,然后按时间轮询 直到计时器为零的时候 轮询到哪一个,这个就是中秒杀者,
      轮询时间是一秒  ,问题是 如果 到最后一秒时候 又有用户按秒杀,这时候 到让计数器加时,然后继续轮询 ,
      不知道何不合理!!!

    请各位 各抒起见! 谢谢

------解决方案--------------------
不是吧,要到时间的时候,LOCK住不就行了,还让询什么呀!
------解决方案--------------------
是啊 时间到后就锁表 禁止插入了。

然后 栈 的思想,最后一个插入的为 中标者。

如果最后一刻中标者有多人,则轮询
(其实 个人认为,轮询都不要,直接order by desc交给mysql处理查询)
------解决方案--------------------
听你的秒杀,貌似只秒出去一个?

如果这样的话,我决得有个开始时间倒计时,当时间到的时候允许购买,当购买入库的时候查询是否己经有人买过,一但有第一位下单者,则停止购买。

这样不行吗?
------解决方案--------------------
引用:
哇 有道理 但是我觉得不够合理啊 
要讲究 公平 公正

最后一刻买入无并发,只有一人中标,最公平。

有并发 多人中标,就没法说公平了,你说给谁中标好? 还不是rand 随机其中的一个,对于其他人来说都不公平。这还多了个rand过程,还不如直接order by,让mysql来决定。
------解决方案--------------------
还有 把插入时间设置成微秒(1秒=100万微秒),我就不信还能有并发。

如果真的还有并发,你的站已经很NB了,已经不可能到这里来问了,身边已经有一大批工程师了。
------解决方案--------------------
引用:
还有 把插入时间设置成微秒(1秒=100万微秒),我就不信还能有并发。

如果真的还有并发,你的站已经很NB了,已经不可能到这里来问了,身边已经有一大批工程师了。


哈哈哈...