当前位置: 首页 > news >正文

PHP抽奖设置中奖率,以及防高并发

一、中奖率,先在后台设定好奖项名称,抽奖份数,以及中奖百分比

奖品表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
http://www.lryc.cn/news/291039.html

相关文章:

  • 使用.NET6 Avalonia开发跨平台三维应用
  • linux(ubuntu)中crontab定时器命令详解 以及windows中定时器
  • 植物病害检测YOLOV8,OPENCV调用
  • C++初阶:入门泛型编程(函数模板和类模板)
  • 【RT-DETR有效改进】CARAFE提高精度的上采样方法(助力细节长点)
  • leetcode 27.移除元素(python版)
  • 分布式场景怎么Join
  • springboot2.7继承swagger knif4j
  • C++ 实现单例模式
  • Java多线程--线程安全问题练习题
  • PHY6252低成本Mesh组网蓝牙芯片
  • 红外图像中两点校正的增益系数与偏置系数的计算公式推导
  • C++/MFC:在窗体Form(Dialog)中多个编辑框时,在输入时将回车解释为TAB键,将输入焦点移到下一个编辑框的方法
  • 鸿蒙南向开发——GN快速入门指南
  • PyCharm常用快捷键和设置
  • Unity - 调节camera物理相机参数(HDRP)
  • @JsonIgnore的使用及相关问题的解决
  • 万户 ezOFFICE SendFileCheckTemplateEdit.jsp SQL注入漏洞
  • 自建DNS劫持服务器,纯内网劫持PS5,屏蔽更新,自动hen
  • C语言王道第八周一题
  • 探索1688店铺所有商品API接口:一键获取海量数据,开启商业智能新篇章
  • 使用Win32API实现贪吃蛇小游戏
  • 力扣0114——二叉树展开为链表
  • FPGA硬件架构
  • spring boot 嵌入chatGPT步骤
  • 博云科技与中科可控全面合作,探索前沿金融科技新机遇
  • 十一、常用API——练习
  • 基于ssm和微信小程序的健身房私教预约管理系统
  • 微服务架构
  • 山体滑坡在线安全监测预警系统(解决方案)