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

thinkphp使用redis抢单实例

问题:当客户预约时产生一个订单,该订单需要业务人员抢单后跟进

一,产生订单时设置redis

$redis = new Redis();
$ydkey = "yyqd_".$insertId;
$exptime = 600;//过期时间 600秒
$redis->lpush($ydkey,$$data);//压入订单ID
$redis->expire($ydkey, $exptime);//设置过期时间
$redis->set("yyqdtime_".$insertId,1,$exptime);

二,业务人员抢单

        $redis = new Redis();try{$yyqdtime = $redis->get("yyqdtime_".$id);if(empty($yyqdtime)){//过期了从数据库查询}else{$lsize = $redis->lsize("yyqd_".$id);if($lsize <= 0){$this->error('线上已被认领!');}$data = $redis->lpop("yyqd_".$id);//取出数据           if(empty($data)){$this->error('线上已被认领!');}   }}catch (Exception $e){//异常处理}

三,也可直接在抢单时先将业务人员ID压入队列,另外启动进程从队列中逐个取出业务人员ID进行数据处理

http://www.dtcms.com/a/271398.html

相关文章:

  • 深入理解MyBatis的MapperBuilderAssistant:如何解析Mapper XML文件?
  • 自然语言处理中probe探测是什么意思。
  • 基于docker进行渗透测试环境的快速搭建(在ubantu中docker设置代理)
  • EF提高性能(查询禁用追踪)(关闭延迟加载)
  • Java+AI精准广告革命:实时推送系统实战指南
  • 人工智能学习81-Yolo预测类
  • JavaEE-初阶-多线程初阶
  • JSP基础
  • day10-Redis面试篇
  • uniapp中使用uView-plus踩坑记录
  • 实变函数 第五章 勒贝格积分(三)
  • HNU 操作系统 Smile_Laughter的学习心得
  • 【RK3568+PG2L50H开发板实验例程】FPGA部分 | 以太网传输实验例程
  • 【PTA数据结构 | C语言版】大整数相乘运算
  • MySQL--DQLDCL
  • uniapp如何创建并使用组件?组件通过Props如何进行数据传递?
  • 七牛云C++开发面试题及参考答案
  • Synology Cloud Sync构建的企业级跨域数据中台
  • OpenGL 生成深度图与点云
  • Spring Boot多数据源配置详解
  • 【AI】环境——深度学习cuda+pytorch配置
  • aichat-core简化 LLM 与 MCP 集成的前端核心库(TypeScript)
  • 前端开发流程设计详解
  • 【leetcode】2235. 两整数相加
  • 【LeetCode 热题 100】21. 合并两个有序链表——(解法二)递归法
  • 仓颉语言 1.0.0 升级指南:工具链适配、collection 操作重构与 Map 遍历删除避坑
  • 深度学习12(卷积神经网络)
  • java idea 本地debug linux服务
  • Vue响应式原理四:响应式-监听属性变化
  • 国密算法(SM2/SM3/SM4)