我们都知道在使用laravel的消息队列时,都需要一个守护进程对其进行管理
否则在服务器重启或者其他异常都会导致队列中断从而功能失效
当然,大部分项目都是在linux下运行,则可以直接使用supervisor进行管理
laravel的官方文档中对supervisor也有详细的介绍,在此就不赘述了
那么在windows下该怎样对laravel的队列进行守护进程的管理呢,在这里我使用了pm2这个工具
首先,我们在windows上安装pm2
可以依赖于项目安装:npm i pm2
也可以依赖于全局安装:npm -g i pm2
我这里暂时就先依赖于项目安装:
然后我们在项目中建立一个yaml的进程配置文件,我这里将其命名为:process.yml
然后我们定义一下文件内容:
每个参数的含义:
apps:
- name: "laravel:queue:work" //这里自己命名
script: artisan //指定脚本为 artisan 脚本
watch: false //不监听文件变化
interpreter: php //脚本为php,如果你的 php 不在全局变量可以指定绝对路径脚本
args: "queue:work" //artisan 命令,根据自己队列的命令去修改
restart_delay: 3000 //进程中断三秒后重启
error_file: ./storage/logs/queue.error.log //错误日志
out_file: ./storage/logs/queue.out.log //输出日志
pid_file: ./storage/app/queue.pid //pid 文件路径
然后我们去项目中的package.json文件增加两行代码:
"queue:start": "npm run queue:remove && pm2 start process.yml", "queue:remove": "pm2 delete process.yml" 此时我们运行下面的命令就可以启动守护进程: npm run queue:start
可以看到守护进程已经启动成功