centos8(linux): 安装使用supervisor管理laravel队列

一,什么是supervisor

Supervisor是一个进程控制系统,它使用户能够监视和控制类unix操作系统进程。
它通过提供基于配置或事件启动、停止和重新启动进程的机制,帮助管理应该在系统中连续运行的进程。
对于需要控制和监视Linux或其他类unix操作系统上多个进程的状态的开发人员和系统管理员来说,Supervisor非常有效。

二,安装/管理supervisor

1,用yum从命令行安装:

[root@blog ~]# yum install supervisor 

2,查看版本:

[lhdop@blog ~]$ supervisord --version
4.2.2

3,查看帮助:

[lhdop@blog ~]$ supervisord --help
[lhdop@blog ~]$ supervisorctl -h

4,查看服务状态:

[root@blog ~]# systemctl status supervisord.service
● supervisord.service - Process Monitoring and Control DaemonLoaded: loaded (/usr/lib/systemd/system/supervisord.service; disabled; vendor preset: disabled)Active: inactive (dead)

5,配置自启动

# 开机自启动
# systemctl enable supervisord 

6,启动服务

# 启动supervisord服务
# systemctl start supervisord 

7, 输出默认配置:

[lhdop@blog ~]$ echo_supervisord_conf 

8, 查看配置文件:

[lhdop@blog etc]$ more /etc/supervisord.conf

三,用supervisor管理php的laravel队列消费者

1,创建指定进程的配置文件

[root@blog ~]# cd /etc/supervisord.d/
[root@blog supervisord.d]# vi laravel-work.ini 

代码:

[root@blog supervisorlogs]# more /etc/supervisord.d/laravel-work.ini
[program:laravel-work]
process_name=%(program_name)s_%(process_num)02d
command=/usr/local/soft/php7/bin/php /data/work/laraveltest/dignews/artisan queue:work --daemon --quiet --delay=3 --sleep=3 --tries=1
autostart=true
autorestart=true
user=root
#numprocs=8
redirect_stderr=true
stdout_logfile=/data/logs/supervisorlogs/queue.log

2, 启动服务

[root@blog supervisord.d]# systemctl status supervisord.service
● supervisord.service - Process Monitoring and Control DaemonLoaded: loaded (/usr/lib/systemd/system/supervisord.service; disabled; vendor preset: disabled)Active: inactive (dead)
[root@blog supervisord.d]# systemctl start supervisord.service
[root@blog supervisord.d]# systemctl status supervisord.service
● supervisord.service - Process Monitoring and Control DaemonLoaded: loaded (/usr/lib/systemd/system/supervisord.service; disabled; vendor preset: disabled)Active: active (running) since Mon 2024-07-08 09:16:05 CST; 3s agoProcess: 23525 ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf (code=exited, status=0/SUCCESS)Main PID: 23528 (supervisord)Tasks: 2 (limit: 26213)Memory: 39.0MCGroup: /system.slice/supervisord.service├─23528 /usr/bin/python3.6 /usr/bin/supervisord -c /etc/supervisord.conf└─23529 /usr/local/soft/php7/bin/php /data/work/laraveltest/dignews/artisan queue:work --daemon --quiet --delay=3 --sleep=3 --tries=1Jul 08 09:16:05 blog systemd[1]: Starting Process Monitoring and Control Daemon...
Jul 08 09:16:05 blog systemd[1]: Started Process Monitoring and Control Daemon.

3,测试效果:

访问生产消息的controller后可以看到日志中的输出内容

[root@blog supervisord.d]# cd /data/logs/supervisorlogs/
[root@blog supervisorlogs]# more queue.log
接收到消息:hello,随机数:509;开始处理:
接收到消息:hello,随机数:898;开始处理:
接收到消息:hello,随机数:401;开始处理:            

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/740394.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转载】App Inventor 开发BLE应用

1. 文章1:搭建环境的介绍: 【深海王国】小学生都能做的APP?AppInventor、BLE蓝牙、Arduino联合开发你的第一个手机远程控制程序(1) 链接:https://blog.csdn.net/D13162580021/article/details/139026624?spm=1001.2014.3001.55022. 文章2:BLE基本知识的介绍: 【深海王…

从 Helm 到 Operator:Kubernetes应用管理的进化

🧰Helm 的作用 在开始前需要先对 kubernetes Operator 有个简单的认识。 以为我们在编写部署一些简单 Deployment 的时候只需要自己编写一个 yaml 文件然后 kubectl apply 即可。apiVersion: apps/v1 kind: Deployment metadata: labels: app: k8s-combat name: k8s-…

RAG工程实践拦路虎之一:PDF格式解析杂谈

背景 PDF(Portable Document Format)是一种广泛用于文档交换的文件格式,由Adobe Systems开发。它具有跨平台性、固定布局和易于打印等特点,因此在商业、学术和个人领域广泛应用。然而,PDF文件的解析一直是一个具有挑战性的问题,因为其内部结构的复杂性和多样性,使得提取…

PHP转Go系列 | ThinkPHP与Gin框架之API接口签名设计实践

数据安全一直是个热门的话题,API 接口在数据的传输上扮演着至关重要的角色。大家好,我是码农先森。 回想起以前用模版渲染数据的岁月,那时都没有 API 接口开发的概念。PHP 服务端和前端 HTML、CSS、JS 代码混合式开发,也不分前端、后端程序员,大家都是全干工程师。随着前后…

【一位资深用户的可视化工具推荐】智慧社区平台里的停车位如何协调?快来看看这款免费可视化工具

在智慧社区的管理中,停车位的协调是一个重要的难题,而山海鲸可视化这款免费可视化工具为解决这一问题提供了完美的解决方案。山海鲸可视化通过其强大的二三维融合功能,能够将二维面板与三维场景无缝结合,使停车位的管理变得更加直观和高效。无论是实时查看停车位的使用情况…

**CodeForces CF1928B Equalize题解**

ok兄弟们,今天本蒟蒻来做一篇小小的题解 Equalize 题面翻译 有一个给定的长度为 $n$ 的数列 $a$,现在加上一个排列 $b$,即 $c_i=a_i+b_i$。 现在求对于所有可能的 $b$,$c$ 中出现最多的数的出现次数的最大值。 translate by @UniGravity. 题目描述 Vasya has two hobbies —…

QT学习遇到的问题 乱码

孔夫子上买了一本二手的《QT 5.9 C++开发指南》, 从网站上下载了书中的代码, 在运行样例6.1过程中, 发现弹出的对话框中字符为乱码, 经过搜索, 找到了如下解决方法: 在头文件中添加了一行代码: #pragmaexecution_character_set("UTF-8")

微信小程序自动识别收货地址

为提升用户体验,在用户新增收货地址时,加入自动识别收货地址功能。.wxml <view class="top"><input type="text" placeholder="复制收货信息(格式:姓名→电话→地址)" value="{{distinguish}}"bindinput="distinguis…

性价比很高的多域名SSL证书:Buypass

在当今数字化快速发展的时代,网络安全已成为公众和企业关注的焦点。为了保障网站数据的安全传输,许多网站都采用了SSL证书来加密用户与服务器之间的通信。申请Buypass六个月免费SSL证书步骤 1、输入域名,注意由于Buypass不支持泛域名,请不要勾选泛域名。 2、选择加密方式,…

01、基础介绍

Kubernetes介绍和各组件盘点 01、K8S总览 Kubernetes(K8s),用于自动部署、扩容、缩容和管理容器化应用程序的开源系统。 它将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。 Kubernetes源自Google 15年生产环境的运维经验,同时凝聚了社区最佳创意和实践。 简单…

RAG知识库之多表示索引

在朴素RAG中通常会对文档、文本进行分块后进行文档嵌入,对所有文件、文本都没有经过采用Chunk方法可能有时候效果不是和好,尽管有着各种分块策略有针对大文件的、针对小文件的策略,但都难免可能会造成上下文语义丢失。分块通常有两个非常重要的参数chunk_size、chunk_overla…

Halcon学习笔记(3):WPF 框架搭建,MaterialDesign+Prism

目录前言环境Nuget安装新建WPF 类库项目初始化PrismApp启动页初始化重写MainView 前言 其实我更喜欢CommunityToolkit.mvvm+HandyControl。但是因为找工作,你不能去抗拒新事物。这里就当体验一下完整的流程好了。 环境windows 11 .net core 8.0Nuget安装新建WPF 类库项目新建项…