侧边栏壁纸
博主昵称
梦之中小俊

以前高中时,羡慕大学考试只要及格就行;现在大学了,怀念高中考试及不及格都行??

PHP

tp6消息队列

梦之中小俊
2023-05-10 / 0 评论 / 411 阅读 / 推送成功!
尾部写入
for ($i=1;$i<=1000;$i++){
    Cache::store('redis')->rpush('list',date("Y-m-d H:i:s")."消息{$i}");
}
 
头部读取消息队列并删除 
$list = Cache::store('redis')->lpop('list');

 

1、随便建个方法浏览器访问,加入redis消息队列

public function hello(){
     for ($i=1;$i<=10;$i++){
        Cache::store('redis')->rpush('list1',date("Y-m-d H:i:s")."消息{$i}");
     }
}

2、队列

tp6创建命令生成文件OrderTask 

php think make:command OrderTask 

加入命令配置文件config/console.php

 [
        //定时任务命令
        'OrderTask ' => app\command\OrderTask ::class
    ],
];

OrderTask .php代码

setName('ExcelTask');
    }

    protected function execute(Input $input, Output $output)
    {
        //php think OrderTask
        $this->start();
        $output->writeln('执行窗口关闭');
    }

    /**
     * 启动
     */
    public function start()
    {
        while (1) {
            //执行读取,看效果
            sleep(1);
            $list = Cache::store('redis')->lpop('list1');
            if(!empty($list)){
                try{
                    $code = $this->order($list);
                }catch (\Exception $e){
                    print_r($e->getMessage());
                    echo "\n";
                    $code = false;
                }
                if($code == false){
                    Cache::store('redis')->rpush('list1',$list."重新加入队列");
                    break;
                }
                $data = Date("Y-m-d H:i:s");
                echo $list."----{$data}\n";
            }
        }
    }

    public function order($list){
        // 启动事务
        Db::startTrans();
        try {
            $data = [];
            $data['name'] = "大得";
            $data['date'] = $list;
            Dade::create($data);
            // 提交事务
            Db::commit();
        } catch (\Exception $e) {
            print_r($e->getMessage());
            echo "\n";
            // 回滚事务
            Db::rollback();
            return false;
        }
        return true;
    }

}

3、停止后配合Supervisor守护进程再次窗口执行命令

php think OrderTask

为什么要守护进程,因为数据库一段时间连接使用会断开,数据库回收。

开启tp6,有时候也不好使,看情况,我的不好使,可能你的好

// tp6数据库配置是否需要断线重连
'break_reconnect'   => true,
本文共 个字数,平均阅读时长 ≈ 分钟,您已阅读:0时0分0秒。
3

打赏

评论 (0)

OωO
  • ::(呵呵)
  • ::(哈哈)
  • ::(吐舌)
  • ::(太开心)
  • ::(笑眼)
  • ::(花心)
  • ::(小乖)
  • ::(乖)
  • ::(捂嘴笑)
  • ::(滑稽)
  • ::(你懂的)
  • ::(不高兴)
  • ::(怒)
  • ::(汗)
  • ::(黑线)
  • ::(泪)
  • ::(真棒)
  • ::(喷)
  • ::(惊哭)
  • ::(阴险)
  • ::(鄙视)
  • ::(酷)
  • ::(啊)
  • ::(狂汗)
  • ::(what)
  • ::(疑问)
  • ::(酸爽)
  • ::(呀咩爹)
  • ::(委屈)
  • ::(惊讶)
  • ::(睡觉)
  • ::(笑尿)
  • ::(挖鼻)
  • ::(吐)
  • ::(犀利)
  • ::(小红脸)
  • ::(懒得理)
  • ::(勉强)
  • ::(爱心)
  • ::(心碎)
  • ::(玫瑰)
  • ::(礼物)
  • ::(彩虹)
  • ::(太阳)
  • ::(星星月亮)
  • ::(钱币)
  • ::(茶杯)
  • ::(蛋糕)
  • ::(大拇指)
  • ::(胜利)
  • ::(haha)
  • ::(OK)
  • ::(沙发)
  • ::(手纸)
  • ::(香蕉)
  • ::(便便)
  • ::(药丸)
  • ::(红领巾)
  • ::(蜡烛)
  • ::(音乐)
  • ::(灯泡)
  • ::(开心)
  • ::(钱)
  • ::(咦)
  • ::(呼)
  • ::(冷)
  • ::(生气)
  • ::(弱)
  • ::(狗头)
泡泡
阿鲁
颜文字
取消
  1. 头像
    6767 Lv.1
    iPhone · Safari
    沙发

    画图

    回复
  2. 头像
    6767 Lv.1
    Windows 10 · Google Chrome
    板凳

    表情

    回复
  3. 头像
    透露 Lv.2
    Android · QQ Browser
    第30楼

    649494848

    回复