第一、安装topthink/think-queue
composer require topthink/think-queue=1.1.6
第二、配置queue.php信息
找到应用目录下面的extra/queue.php进行配置,队列驱动有三种,包括sync/redis/database,下面以redis为例
如果选择database驱动,则需要创建数据表,数据表如下
第三、创建任务类
推荐使用app\job
作为任务类的指定空间,也可以随意选择可以自动加载到的地方
任务类不需要继承任何类,如果这个类只有一个任务,那么只要提供一个fire
方法就可以了,如果有多个小任务,就写多个,下面发布任务的时候的几个参数
think\queue\Job $job
(当前的$data
自定义数据)
如果需要任务执行超过次数失败后,可以增加failed方法
第四、发布任务
以下模拟用户注册成功后发送短信提醒用户,发送短信这个功能也就是发布一个任务(队列)
第五、监听任务并执行
php think queue:listen --queue message
这里是队列的监听,下面我们执行下用户注册方法查看具体结果
执行第四步我们创建的用户注册方法,执行这个方法后就发布了一个新的任务
监听到有新的任务后会自动执行我们创建的任务类的fire方法