最近项目需求,研究了laravel的异步队列。

官方文档虽然很是详细,但也有些晦涩难懂,在此记录下步骤,供大家参考。

1、修改/config/queue.php文件

注意:修改.env文件如下参数,设置队列连接默认为数据库连接

2、新建/app/Job/EmailJob.php,此文件为队列主文件

3、新建/app/Service/EmailJobService.php服务,此文件为封装服务文件,可以不用,直接在使用的地方调用队列。

4、打开终端切换目录进入Laravel项目根目录,执行如下命令,创建队列任务需要的数据表。

5、通过下面这条指令启动队列监听服务,它会自动处理 jobs 表中的队列任务。

监听指定队列:

这是监听 default和mytask两个队列,区分先后顺序。

6、如果需要在linux中后台运行,有两种方法:

6.1 执行如下命令:

6.2.1 安装Supervisor,我的服务器系统为CentOs7.5,所以使用yum安装。

6.2.2 在/etc/supervisord.d下新建ini文件,eg:laraver-worker.ini,设置自动运行命令等相关参数

6.2.3 启动supervisor,laravel队列监听进程便在后台运行了。

7、注意:如果修改了job内的代码(包括job调用的方法类),是需要重启queue的。