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 # 查看更多帮助信息
    

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

查看所有标签

猜你喜欢:

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

C++ Primer 中文版(第 5 版)

C++ Primer 中文版(第 5 版)

[美] Stanley B. Lippman、[美] Josée Lajoie、[美] Barbara E. Moo / 王刚、杨巨峰 / 电子工业出版社 / 2013-9-1 / CNY 128.00

这本久负盛名的 C++经典教程,时隔八年之久,终迎来史无前例的重大升级。除令全球无数程序员从中受益,甚至为之迷醉的——C++ 大师 Stanley B. Lippman 的丰富实践经验,C++标准委员会原负责人 Josée Lajoie 对C++标准的深入理解,以及C++ 先驱 Barbara E. Moo 在 C++教学方面的真知灼见外,更是基于全新的 C++11标准进行了全面而彻底的内容更新。......一起来看看 《C++ Primer 中文版(第 5 版)》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

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

各进制数互转换器

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码