pm2 代替 Supervisor 管理进程
前提
我们在使用 Laravel 的时候不免用到列队来处理任务,而 Laravel 官方文档给出的是 Supervisor 来管理进程和监控。
但是我们在使用中有下面几个缺点:
- Supervisor 单日志
- 配置过于复杂
- 无法预配设置
pm2
pm2 这个工具我想做前端,尤其是做过 SSR 的都不陌生,我们需要使用 pm2 工具让进程常驻运行与自动重启这类功能。
但是我们知道 pm2 是 node 下工具,能否用于其他语言呢?其实是可以的,我们都说了嘛,pm2 就是一个工具,一个用 js 开发的工具而已。既然是工具,当然能用到其他地方去。
安装
laravel 下本身就有一个 package.json 文件。反正也要用到 node,如果你和我一样有强迫症,就依赖到项目中。如果没有,则可以全局安装:
依赖到项目
npm i pm2
// or
yarn add pm2
依赖到全局
npm -g i pm2
// or
yarn add --global pm2
预先配置
我们在项目中建立一个 YAML 的进程配置文件,暂且命名为 process.yml:
apps:
- name: "laravel:queue:work" # 这里自己命名
script: artisan // 指定脚本为 artisan 脚本
watch: false // 不监听文件变化
interpreter: php // 脚本为php,如果你的 php 不在全局变量可以指定绝对路径脚本
args: "queue:work --tries=3" // 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 scripts 配置
我们为了方便在项目中启动,我们配置几个命令:
"scripts": {
"queue:start": "npm run queue:remove && pm2 start process.yml",
"queue:remove": "pm2 delete process.yml"
}
启动
现在我们运行下面的命令就可以了:
npm run queue:start
// or
yarn queue:start
其实使用 pm2 最大的好处就是因为这玩意比 Supervisor 简单
pm2 代替 Supervisor 管理进程的更多相关文章
- Supervisor管理进程
Supervisor管理进程 转载 2016年04月14日 18:26:45 标签: supervisord 28344 Supervisor重新加载配置启动新的进程 liaojie 发布于 1年前, ...
- Supervisor 管理进程,Cloud Insight 监控进程,完美!
Supervisor 是由 Python 语言编写.基于 linux 操作系统的一款服务器管理工具,用于监控服务器的运行,发现问题能立即自动预警及自动重启等. Cloud Insight 是一款次世代 ...
- supervisor管理进程 superlance对进程状态报警
supervisor介绍 首先,介绍一下supervisor.Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linu ...
- Linux服务:使用Supervisor管理进程
一.简介 由于基本每个公司都会用到supervisor这个进程管理工具,这里简单阐述一下. Supervisor (http://supervisord.org) 是一个用Python写Linux下的 ...
- Django与supervisor 管理进程
1.前言 在Django项目中,我们需要用到一些独立于Django框架外的脚本.这样一些脚本可能需要独立的持续运行,且具有很强的可维护性,这个时候supervisor就可以排上用场了. 基于pytho ...
- supervisor管理进程工具配置
Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统 ...
- 在Docker里使用(支持镜像继承的)supervisor管理进程(转)
这篇文章是受 dockboard 之托帮忙翻译的与 docker 有关的技术文章.译自 Using Supervisor with Docker to manage processes (suppor ...
- php使用supervisor管理进程脚本
supervisor是用python开发的一个在linux系统下的进程管理工具,可以方便的监听,启动,停止一个或多个进程.当一个进程被意外杀死后,supervisor监听到后,会自动重新拉起进程. 一 ...
- 使用 supervisor 管理进程
安装: # yum install python-setuptools # easy_install supervisor 如果已经安装了epel和python-pip, 也可以简单 pip inst ...
随机推荐
- sql 184. 部门工资最高的员工
Employee 表包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id. +----+-------+--------+--------------+| Id ...
- 浅谈浏览器存储(cookie、localStorage、sessionStorage)
今天我们从前端的角度了解一下浏览器存储,我们常见且常用的存储方式主要由两种:cookie.webStorage(localStorage和sessionStorage).下面我们来一一认识它们. Co ...
- IDEA部署Tomcat报错:No artifacts marked for deployment
刚开始碰到这个问题还被坑了,搞了好半天...所以我准备记录一下,走的弯路就不说了,因为我没图
- TXNLP 01-09
一般涉及生成文本都是比较难的.
- Ubuntu 16.04安装docker详细步骤
1. 卸载之前的旧版本 sudo apt-get remove docker docker-engine docker-ce docker.io 2. 更新apt包 sudo apt-get upda ...
- ueditor编辑器+粘贴word
最近公司做项目需要实现一个功能,在网页富文本编辑器中实现粘贴Word图文的功能. 我们在网站中使用的Web编辑器比较多,都是根据用户需求来选择的.目前还没有固定哪一个编辑器 有时候用的是UEditor ...
- 2g 大文件上传
核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. * 如何分片: * 如何合成一个文件: * 中断了从哪个分片开 ...
- 『HGOI 20190917』Lefkaritika 题解 (DP)
题目概述 一个$n \times m$的整点集.其中$q$个点被m被设置为不能访问. 问这个点集中含有多少个不同的正方形,满足不包含任何一个不能访问的点. 对于$50\%$的数据满足$1 \leq n ...
- Android学习_Selector
Selector 实现组件在不同状态下不同的文字颜色.背景颜色或图片的切换,使用十分方便. 1. 创建方法 第一种:在XML中直接创建selector的XML文件,容易掌握,简单但是不灵活,较为常用. ...
- Teamviewer解决许可证授权的问题
提交商业用途表 https://www.teamviewer.com/zhCN/pricing/commercial-use/