gpt4 book ai didi

php - 为什么 Laravel 或 Beanstalkd 会跳槽?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:38:25 25 4
gpt4 key购买 nike

我正在使用 Laravel Queuesbeanstalkd 管理音频转换,由 supervisord 监控。

当用户上传音频文件时,它会转到触发 Queue::push('AudioProcess')AudioController.php,它本身会触发 exec('sh some_script.sh some_audio.mp3') 处理音频并在完成后将应用程序音频模型状态设置为 1

我做了一堆上传来测试,这里是记录 Audio upload records

1 表示 AudioProcess.php worker 已执行,0 表示 AudioProcess.php worker 尚未执行'已被执行。

我猜它可能来自 Laravel 队列管理或 beanstalkd,但我在日志中找不到任何相关内容(laravel.log,我的主管 queue.log, php_errors.log).

我在同一台服务器上运行一个暂存环境和一个生产环境,所以有两个 Laravel 应用程序,因此有两个 php artisan queue:listen 命令同时运行(每个都有 --env 指定),如果它与我的问题有关。几周前它运行良好,然后我暂时放弃了这个项目,最近又重新开始了。我也做了一些apt-get update && apt-get upgrade

为什么 Laravel 或 beanstalkd 没有处理所有作业?

最佳答案

问题的发生可能是因为两个 php artisan queue:listen(对于每个环境)正在将作业发送到同一个 beanstalkd 队列(默认)。这导致了某种冲突,但我不能说更多...

我通过让每个环境的 php artisan queue:listen 将作业发送到 [environment] 队列来修复它。因此我现在有两个队列,stagingproduction

怎么做

  • 创建一个 app/config/[environment]/queue.php 覆盖[connections => [beanstalkd => [queue]]] 来自 default 的参数到该环境的名称。

  • 指定队列的名称 artisan :php artisan queue:listen --queue=[environment]

关于php - 为什么 Laravel 或 Beanstalkd 会跳槽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26834623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com