PHP抽奖设置中奖率,以及防高并发
admin 阅读: 2024-03-18
后台-插件-广告管理-内容页头部广告(手机) |
一、中奖率,先在后台设定好奖项名称,抽奖份数,以及中奖百分比
奖品表draw
二、 借助文件排他锁,在处理下单请求的时候,用flock锁定一个文件,如果锁定失败说明有其他订单正在处理,此时要么等待要么直接提示用户"服务器繁忙"
阻塞(等待)模式,一般都是用这个模式,排队式抽奖,一个人抽完再到下一位
<?php
$fp = fopen("lock.txt", "w+"); if(flock($fp,LOCK_EX)) { //..处理订单 flock($fp,LOCK_UN); } fclose($fp); ?>非阻塞模式
<?php
$fp = fopen("lock.txt", "w+"); if(flock($fp,LOCK_EX | LOCK_NB)) { //..处理订单 flock($fp,LOCK_UN); } else { echo "系统繁忙,请稍后再试"; } fclose($fp); ?>完整php代码 ,文件锁进行防高并发(在目录下添加一个lock.txt),通过百分比计算出抽奖率,随机抽取一份奖品
public function draw(){ //文件锁进行防高并发 $fp = fopen("lock.txt", "w+"); if(flock($fp,L声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |