• Laravel使用Supervisor管理linux自动队列


    队列处理器 & 部署#
    因为队列处理器都是 「常驻」 进程,如果代码改变而队列处理器没有重启,他们是不能应用新代码的。所以最简单的方式就是重新部署过程中要重启队列处理器。你可以很优雅地
    只输入 queue:restart 来重启所有队列处理器。

    php artisan queue:restart

    这个命令将会告诉所有队列处理器在执行完当前任务后结束进程,这样才不会有任务丢失。因为队列处理器在执行 queue:restart 命令时对结束进程,你应该运行一个进程管理器,
    比如 Supervisor 来自动重新启动队列处理器

    Supervisor 是一个 Linux 操作系统上的进程监控软件,它会在 queue:listen 或 queue:work 命令发生失败后自动重启它们。在 Ubuntu 安装 Supervisor,可以用以下命令:

    sudo apt-get install supervisor

    配置 Supervisor#
    Supervisor 的配置文件一般是放在 /etc/supervisor/conf.d 目录下。在这个目录中你可以创建任意数量的配置文件来要求 Supervisor 怎样监控你的进程。例如我们创建一个
    laravel-queue-worker.conf 来启动与监控一个queue:work进程:

    [program:laravel-queue-worker]
    process_name=%(program_name)s_%(process_num)02d
    command=php /home/vagrant/www/ucenter/artisan queue:work
    autostart=true
    autorestart=true
    user=forge
    numprocs=8
    redirect_stderr=true
    user=vagrant
    stdout_logfile=/home/vagrant/www/ucenter/worker.log

    线上环境把路径和user修改成对应的

    启动 Supervisor#
    当这个配置文件被创建后,你需要更新 Supervisor 的配置,并用以下命令来启动该进程:

    1 sudo supervisorctl reread 
    ERROR: CANT_REREAD: Invalid user name forge in section 'program:laravel-queue-worker' (file: 
    '/etc/supervisor/conf.d/laravel-queue-worker.conf')

    若执行reread报错,在conf文件中添加user=vagrant

    1 sudo supervisorctl update
    2 sudo supervisorctl start laravel-queue-worker:*
    vagrant@homestead:/etc/supervisor/conf.d$ vi laravel-queue-worker.conf
    vagrant@homestead:/etc/supervisor/conf.d$ sudo supervisorctl reread
    laravel-queue-worker: available
    vagrant@homestead:/etc/supervisor/conf.d$ sudo supervisorctl update
    laravel-queue-worker: added process group
  • 相关阅读:
    Java 中日常使用的 IO 流总结
    NIO 实现非阻塞 Socket 通讯
    Java NIO 的简单介绍和使用
    常用设计模式 -- 一分钟就能学会的门面模式(外观模式)
    Java日志框架介绍和 Slf4j 使用
    Linux学习一
    JavaScript-数组
    javascript
    idea 快捷键汇总
    正则表达式
  • 原文地址:https://www.cnblogs.com/yin5th/p/8316605.html
Copyright © 2020-2023  润新知