1 回答
TA贡献1719条经验 获得超6个赞
一个奖品分两个队列,如1_jx_1(第一期奖品奖项1)、2_jx_1(第二期奖品奖项1),然后队列里面放奖品的信息什么的。
$1_jx_1=
array(
array('jx'=>'1','name'=>'一等奖','sn'=>'20170401401'),
array('jx'=>'1','name'=>'一等奖','sn'=>'20170401402'),
array('jx'=>'1','name'=>'一等奖','sn'=>'20170401403'),
......
);
$1_jx_2=
array(
array('jx'=>'1','name'=>'一等奖','sn'=>'20170401411'),
array('jx'=>'1','name'=>'一等奖','sn'=>'20170401412'),
array('jx'=>'1','name'=>'一等奖','sn'=>'20170401413'),
......
);
用户点击页面,生成奖品,第一周去队列一取,后面两周去队列二取奖品,队列出队空,就直接返回谢谢参与。
用户点击页面,算法生成奖项再队列里面出队,这是一个办法。
以前我是这么搞的,不知道好不好。我线下根据算生法,生成了好几万的领奖数据,把这些记录放到redis里面,用户点击页面,直接队列里面出队一个奖给他,省了算法的部分。
也就是说只要两个队列,只要队列一空,就谢谢参与。这样子速度是快了些,缺点是前确定了奖品概率,后期不好改动。
$1jx= array(
array('jx'=>'1','name'=>'一等奖','sn'=>'20170401401'),
array('jx'=>'0','name'=>'谢谢参与','sn'=>''),
array('jx'=>'0','name'=>'谢谢参与','sn'=>''),
array('jx'=>'0','name'=>'谢谢参与','sn'=>''),
array('jx'=>'1','name'=>'一等奖','sn'=>'20170401403'),
......
);
$1jx=array(
array('jx'=>'0','name'=>'谢谢参与','sn'=>''),
array('jx'=>'0','name'=>'谢谢参与','sn'=>''),
......
array('jx'=>'1','name'=>'一等奖','sn'=>'20170401413'),
......
);
添加回答
举报