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{$data = $redis->lpop("yyqd_".$id);//取出数据 }}catch (Exception $e){//异常处理}
三,也可直接在抢单时先将业务人员ID压入队列,另外启动进程从队列中逐个取出业务人员ID进行数据处理