首页 > 系统相关 >通过supervisor管理laravel队列任务守护进程

通过supervisor管理laravel队列任务守护进程

时间:2022-08-20 18:45:46浏览次数:80  
标签:laravel supervisor 队列 supervisorctl 进程 es

通过supervisor管理laravel队列任务守护进程

背景:laravel队列,在调试使用时可以使用php artisan queue:work来启用队列,但是实际项目部署后,需要通过守护进程一直启动队列,在这使用 supervisor 来管理laravel队列守护进程,并且可以自动重启队列

  1. 安装supervisor
# mac 安装supervisor
brew install supervisor
  1. supervisor的配置文件目录
/usr/local/etc/supervisor.conf
  1. 创建配置文件目录:
mkdir /usr/local/etc/supervisor.d
  1. 新建项目配置文件:
[program:laravel-queue-worker]  ; 是应用程序的唯一标识,不能重复 
 # 指定进程的命名规则:foo_00,foo_01... 
 process_name=%(program_name)s_%(process_num)02d 

 # command 必须。程序启动后执行的命令,可以是绝对命令,也可以是相对命令(在环境$PATH中搜索可执行文件)。受控的程序本身不应该是守护程序。 
 command=php /Users/wangkaikai/dnmp/www/ali-php/artisan queue:work --sleep=3 --tries=3 

 # Supervisor 启动时自动启动该程序 
 autostart=true 

 # 指定进程挂掉时 Supervisor 自动重启进程 
 autorestart=true 

 # 指定运行进程使用的用户,需要 Supervisor 以root用户运行。使用 setuid 切换用户,不会启动shell程序和改变环境变量 
 user=wangkaikai 

 # 运行和监控的进程数量,进程位于laravel-worker组内,指定该值需同时设置process_name包含%(process_num)s 
 numprocs=8 

# 将 stderr 错误输出重定向到 stdout 标准输出 
redirect_stderr=true 

# 将进程的 stdout 标准输出写入文件中,设为NONE不会创建任何日志文件。 
stdout_logfile=/Users/wangkaikai/dnmp/www/ali-php/storage/logs/queue-worker.log

supervisor常用命令

supervisorctl status:查看所有进程的状态
supervisorctl stop es:停止es
supervisorctl start es:启动es
supervisorctl restart es: 重启es
supervisorctl update :配置文件修改后可以使用该命令加载新的配置
supervisorctl reload: 重新启动配置中的所有程序

标签:laravel,supervisor,队列,supervisorctl,进程,es
From: https://www.cnblogs.com/alisleepy/p/16608313.html

相关文章

  • 21. Redis---消息队列
    1.前言RedisStream是Redis5.0版本引入的一种新数据类型,同时它也是Redis中最为复杂的数据结构,本节主要对Stream做相关介绍。2.什么是Stream?Stream实际上是......
  • 优先队列 二叉堆 概念
    1.优先队列相比普通队列,其执行顺序先按优先级再按插入顺序。支持至少两种基本操作插入及删除最小。2.二叉堆优先队列的一种实现,是一颗除最下层外被完全填满的二叉树......
  • 消息队列选型
    消息队列选型  参考资料:带你玩转消息队列和相关选型消息队列原理和选型:Kafka、RocketMQ、RabbitMQ和ActiveMQPulsar与Kafka全方位对比(上篇):功能、性能、用例......
  • leetcode 225. Implement Stack using Queues 用队列实现栈(简单)
    一、题目大意请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop和empty)。实现MyStack类:voidpush(intx)将元素x压入栈顶。......
  • 1021 ObstacleCourse障碍训练课 优先队列+bfs+转弯
    链接:https://ac.nowcoder.com/acm/contest/26077/1021来源:牛客网题目描述考虑一个NxN(1<=N<=100)的有1个个方格组成的正方形牧场。......
  • 用队列实现栈
    目录题目描述解题思路解题代码题目描述题目地址:https://leetcode.cn/problems/implement-stack-using-queues/题目要求请你仅使用两个队列实现一个后入先出(LIFO)的栈,并......
  • laravel collection keyBy 多字段
    1、场景二维数组中,如果要取出满足多个字段条件的数据时,通常使用遍历的方式。laravel提供collectionkeyBy可以将多个字段格式化作为键名,不用写foreach遍历。2、例子......
  • 【限时领奖】消息队列 MNS 训练营重磅来袭,边学习充电,边领充电宝~
    阿里云消息队列MNS定位是RocketMQ轻量版,提供轻量模型、轻量HTTPRESTful协议,运维轻量、计费轻量,具备易集成等特点。为了帮助大家由浅入深的对阿里云消息队列MNS有......
  • 消息队列基本原理和选型对比
    消息队列使用场景消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,削峰填谷等问题。实现高性能、高可用、可伸缩和最终一致性架构。   解耦:多个服......
  • redis实现消息队列的几种方式及其优劣
    redis实现消息队列的几种方式及其优劣衡与墨已于2022-04-2720:46:32修改5617收藏24分类专栏:redis精华文章标签:redispub-substream消息队列版权redis同时被......