redis事务

来源:互联网 发布:mac下载工具推荐 编辑:程序博客网 时间:2024/06/08 07:17
// 获取100条数据    $list = $redis->lrange($key, 0, 100); //myvar_dump($list);        // 开始redis事务    $redis->multi();    Db::startTrans();    try {                // 从list表头取出佣金订单,开始给用户增加佣金        foreach ($list as $k=>$v){                        $data = json_decode($v, true);            if (!$data) {                continue;            }                        $confirmTime = strtotime($data['confirm_time']);            if (!$confirmTime) {                continue;            }                        // 如果不是待转账状态,或者确认收货后未满7天            $offsetDay = (time() - $confirmTime) / 3600 / 24;            if ($data['status'] > 0 || $offsetDay < 6) {                continue;            }                        // 用到的字段            $oid = $data['id']; // 佣金订单ID            $userid = $data['parent_user_id']; // 收款人ID            $money = $data['real_yongjin'];    // 收款金额                        // 执行增加佣金            Db::execute('update user_user set yongjin_money=yongjin_money +? where user_id =?',                [$money, $userid]);                        // 执行变更佣金订单的状态            Db::execute('update yongjin_order set status =1 where id=?', [$oid]);                        // 删除表头的数据            $redis->lPop($key);        }                // 提交redis事务        $redis->exec();        Db::commit();            } catch (\Exception $e) {                // redis事务回滚        $redis->discard();        Db::rollback();                Log::error($e->getMessage());            }    

原创粉丝点击