V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
copyrenzhe
V2EX  ›  PHP

laravel 队列的相关问题

  •  
  •   copyrenzhe · 2016-10-05 16:33:05 +08:00 · 4474 次点击
    这是一个创建于 2999 天前的主题,其中的信息可能已经有所发展或是发生改变。

    参考 laravel 官方文档,队列驱动使用 beanstalkd , supervisor 监控队列进程,但是运行一段时间之后, queue:work 的进程显示还在运行中,但是已经不处理队列了,剩余队列一直不处理,也没有报错信息,重启 supervisor 或者 queue:work 进程后,又正常,不过运行一段时间后,还是会停止,队列命令是:
    php artisan queue:work --sleep=3 --tries=1 --memory=512 --daemon 有没有大神知道是什么原因造成的?

    11 条回复    2016-10-09 23:44:37 +08:00
    ichou
        1
    ichou  
       2016-10-05 16:54:57 +08:00   ❤️ 1
    看描述 应该是队列卡住了,你的队列任务可能由于某些原因僵死了,导致一直占用着进程不会退出
    tiseheaini
        2
    tiseheaini  
       2016-10-06 00:06:56 +08:00   ❤️ 1
    不清楚 “一段时间” 是多长时间,期间有没有部署过代码
    部署过代码需要 重启 php artisan queue:restart
    目前能想到的可能是部署过代码
    copyrenzhe
        3
    copyrenzhe  
    OP
       2016-10-06 00:37:44 +08:00
    @ichou 我也是这么猜测的,但是现在不知道为什么会僵死,有这方面的经验吗?
    copyrenzhe
        4
    copyrenzhe  
    OP
       2016-10-06 00:38:34 +08:00
    @tiseheaini “一段时间”有时是一两天,有时是几个小时,不定。期间没有重新部署代码
    tiseheaini
        5
    tiseheaini  
       2016-10-06 00:47:12 +08:00   ❤️ 1
    @copyrenzhe 贴一下 supervisor 的配置看看,这样的问题也没有遇到过
    copyrenzhe
        6
    copyrenzhe  
    OP
       2016-10-06 15:37:25 +08:00
    @tiseheaini
    [program:worker]
    process_name=%(program_name)s_%(process_num)02d
    command=php /var/www/html/novel/artisan queue:work --sleep=3 --tries=1 --memory=512 --daemon
    autostart=true
    autorestart=true
    user=root
    numprocs=2
    redirect_stderr=true
    stdout_logfile=/var/www/html/novel/storage/logs/queue-worker.log
    dlllcs
        7
    dlllcs  
       2016-10-06 17:05:06 +08:00   ❤️ 1
    有没有可能是某个任务进入死循环了?
    takashiki
        8
    takashiki  
       2016-10-07 19:02:58 +08:00
    有打出日志看看么,如果用 mysql 作为驱动也会因为 lost connection 而报错的
    copyrenzhe
        9
    copyrenzhe  
    OP
       2016-10-07 21:38:51 +08:00
    @takashiki 日志看过了,没有报错信息,队列驱动用的 beanstalkd
    copyrenzhe
        10
    copyrenzhe  
    OP
       2016-10-07 21:39:25 +08:00
    @dlllcs 有这个可能,如果进入死循环, laravel 会报错吗?
    dlllcs
        11
    dlllcs  
       2016-10-09 23:44:37 +08:00
    @copyrenzhe 不会,我觉得这个可能性是最大的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2480 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:27 · PVG 13:27 · LAX 21:27 · JFK 00:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.