【问题标题】:Laravel Queue Worker on Amazon EC2 setup issueAmazon EC2 设置问题上的 Laravel Queue Worker
【发布时间】:2018-11-08 03:17:07
【问题描述】:

我在 EC2 实例上部署了一个 Laravel 项目。我正在使用数据库队列驱动程序来处理我的排队作业。 我已按照以下指南配置主管: https://gist.github.com/vrajroham/6565c4b2e9b4db693c1524394545a610

但是,当我尝试使用命令运行 laravel worker 时

/usr/local/bin/supervisorctl start laravel-worker:*

我收到以下回复:

laravel-worker: ERROR (no such group)

下面是我的配置文件(laravel-worker.conf):

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/api/artisan queue:work --tries=3
autostart=true
autorestart=true
user=ec2-user
numprocs=5
redirect_stderr=true
stdout_logfile=/var/www/api/storage/worker.log

我浏览了类似的问题,但无法解决问题。任何帮助表示赞赏。

【问题讨论】:

    标签: laravel laravel-5 amazon-ec2 supervisord


    【解决方案1】:

    这可能是由于管理员没有读取您的配置造成的。尝试重新加载 supervisord。

    sudo supervisorctl reread
    sudo service supervisord reload
    

    我通常在 kubernetes 上做的是为 supervisord 创建一个配置文件。每当我的工作容器启动时,都会运行以下脚本:

        echo "Creating config files..."
        rm /etc/supervisor/supervisord.conf && \
        dd of=/etc/supervisor/supervisord.conf << EOF
    [unix_http_server]
    file=/var/run/supervisor.sock   ; (the path to the socket file)
    
    [supervisord]
    logfile=/dev/stdout ; (main log file;default $CWD/supervisord.log)
    logfile_maxbytes=50MB        ; (max main logfile bytes b4 rotation;default 50MB)
    logfile_backups=10           ; (num of main logfile rotation backups;default 10)
    loglevel=info                ; (log level;default info; others: debug,warn,trace)
    pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
    nodaemon=false               ; (start in foreground if true;default false)
    minfds=1024                  ; (min. avail startup file descriptors;default 1024)
    minprocs=200                 ; (min. avail process descriptors;default 200)
    user=root                ;
    
    ; the below section must remain in the config file for RPC
    ; (supervisorctl/web interface) to work, additional interfaces may be
    ; added by defining them in separate rpcinterface: sections
    [rpcinterface:supervisor]
    supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
    
    [supervisorctl]
    serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket
    
    [program:laravel-worker]
    process_name=%(program_name)s_%(process_num)02d
    command=php /code/artisan queue:work --sleep=3 --tries=3
    autostart=true
    autorestart=true
    user=root
    numprocs=8
    redirect_stderr=true
    stdout_logfile=/dev/stdout
    stdout_logfile_maxbytes=0
    EOF
    
        echo "Starting queue..."
        exec /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
    

    像魅力一样工作。

    【讨论】:

    • 当我执行:“sudo service supervisord reload”命令我得到“supervisord:无法识别的服务”
    • @Chamindar2002 是否安装了supervisord?如果未安装,您可以在 Ubuntu 上运行 sudo apt-get install supervisor。如果已安装,您可能需要运行 sudo chmod +x /etc/init.d/supervisord 以使其可执行,但我怀疑这是问题所在。也许运行sudo supervisorctl reread 来读取新配置,然后`sudo service supervisord reload。
    • @llyas Deckers 我使用命令$ easy_install supervisor 安装了supervisor。当我运行supervisorctl reread 时,我收到以下消息:进程没有配置更新
    • 看看这个帖子 -> serverfault.com/questions/211525/…
    猜你喜欢
    • 2021-12-23
    • 2012-12-12
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    • 2012-03-21
    • 2013-02-25
    相关资源
    最近更新 更多