我们都知道在使用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

 

 

可以看到守护进程已经启动成功

 

posted on 2022-08-01 21:24  杏寿郎  阅读(728)  评论(0编辑  收藏  举报