CentOS下使用supervisor配置Laravel多线程任务队列

栏目: 编程语言 · PHP · 发布时间: 6年前

内容简介:supervisor是一款python开发的软件,可以很方便的守护PHP脚本运行,在Laravel中,可以使用它来守护任务队列进程,并且支援多线程及输出日志。

supervisor是一款 python 开发的软件,可以很方便的守护 PHP 脚本运行,在 Laravel 中,可以使用它来守护任务队列进程,并且支援多线程及输出日志。

  1. 安装

    yum install python-setuptools
    easy_install supervisor
    
  1. 创建配置文件及调整配置

    运行下列命令即可生成一个配置文件在 /etc/supervisord.conf

    echo_supervisord_conf > /etc/supervisord.conf
    

    接着需要打开这个配置文件,修改一些配置,防止在使用过程中出现一些诡异情况

    首先打开配置文件:

    vim /etc/supervisord.conf
    

    将下列配置节进行修改:

    [unix_http_server]
    file=/tmp/supervisor.sock;
    ...
    [supervisord]
    logfile=/tmp/supervisord.log;
    pidfile=/tmp/supervisord.pid;
    ...
    ;[include]
    ;files = relative/directory/*.ini
    

    修改之后:

    [unix_http_server]
    # 替换/tmp 为/var/run
    file=/var/run/supervisor.sock;
    ...
    [supervisord]
    # 日志文件修改为 /var/log
    logfile=/tmp/supervisord.log;
    # pid文件修改为 /var/run
    pidfile=/var/run/supervisord.pid;
    ...
    # 去掉include节点的注释
    [include]
    # 配置文件目录 修改为 /etc/supervisor/*.conf
    files = /etc/supervisor/*.conf
    

    然后运行下列命令加载这个配置文件:

    supervisord -c /etc/supervisord.conf
    
  2. 创建项目配置文件

    因上面配置项目配置文件的路径为 /etc/supervisor/*.conf ,则将配置文件以 laravel-{项目名}.conf 的格式存放于 /etc/supervisor/ 目录下,例如 /etc/supervisor/laravel-toggle.conf

    打开这个配置文件,参考配置如下(根据个人需要进行修改):

    [program:laravel-toggle] # 这里为项目名,前缀-后缀
    process_name=%(program_name)s_%(process_num)02d
    command=php /home/wwwroot/www.toggle.co.kr/artisan queue:work # 这里填写你的项目artisan所在路径
    autostart=true # 是否自动开始
    autorestart=true # 是否自动重启(防止进程意外退出)
    user=root # 使用的用户
    numprocs=8 # 使用的进程数量
    redirect_stderr=true # 为true的话,stderr的log会并入stdout的log里面
    stdout_logfile=/home/logs/worker/toggle.co.kr.log # 日志存放路径(若无记得提前创建目录)
    
  3. 运行项目

    使用下列命令即可运行项目

    sudo supervisorctl reread # 重载supervisor配置
    sudo supervisorctl update # 更新项目配置(每次更新配置文件后都需要运行)
    sudo supervisorctl start laravel-toggle:* # 启动项目 (请根据实际情况修改项目名)
    
  4. 全部命令一览

    sudo supervisorctl # 直接运行此命令可查看现正运行的任务列表
    sudo supervisorctl restart laravel-toggle:* # 此命令可重启项目
    sudo supervisord -c /etc/supervisord.conf # 此命令可加载supervisord的配置文件
    sudo supervisorctl reread # 每次修改了supervisord.conf都需要此命令重新加载配置
    sudo echo_supervisord_conf # 此命令可显示一个默认的supervisord配置文件,可以透过">"管道符写出配置
    sudo supervisorctl update # 每次更新或添加了项目的配置文件都需要此命令来更新
    sudo supervisorctl start 项目名:* # 此命令可启动项目
    sudo supervisorctl restart 项目名:* # 此命令可重启项目
    sudo supervisorctl stop 项目名:* # 此命令可停止项目
    supervisorctl help # 查看更多帮助信息
    

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Charlotte's Web

Charlotte's Web

E. B. White / Scholastic / 2004 / USD 0.01

This is the tale of how a little girl named Ferm, with the help of a friendly spider, saved her pig, Wilbur, from the usual fate of nice fat little pigs.一起来看看 《Charlotte's Web》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具