基于Tp5框架自带的redis(linux下supervisor进程守护)队列
一、什么是队列
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
二、队列能够干什么,适用的场景是什么
能够解决短时间请求问题而不需要实时得到处理结果或者需要异步通知结果的应用场景
例如:领导A、领导B、领导C同时给你安排了一个需要执行的任务,那么此时你不能同时给出处理结果,需要一个个的解决然后将处理结果依次通知到领导
三、项目中哪些地方用到了队列
1.商品最新列表
2. 排行榜
3. 第三方支付异步回调处理支付结果等等
四、如何创建一个队列
\think\Queue::push(‘app\test\controller\Queue@fire’,$data,‘doJob’);
简单的一个队列就创建完成了
《解释一下分别代表的意思》
app\test\controller\Queue 是队列执行文件所在位置
@fire 去执行的方法
$data 是你要执行的任务的集合
‘doJob’ 是你的队列名称
八、如何启动一个监听呢
php think queue:listen --queue doJob
九、如何开启自动监听队列
1.去/etc/supervisor/conf.d/ 加一下配置文件(如果conf.d里边已经有其他队列的配置,只需要cp note_queue.conf activity_queue.conf 复制粘贴到本文件夹。如果没有你需要创建一个conf文件)。
2.创建完成,ll查看一下是否有创建的配置文件。
3. 输入supervisorctl命令,会出来一堆选项让你选择。选update,修改一下要监听的文件。
4. supervisorctl查看是否update成功。