rya*_*cey 5 php beanstalkd supervisord laravel
我正在使用Laravel Queues和beantalkd管理音频转换,并由supervisor进行监视。
当用户上传音频文件时,它会AudioController.php触发一个Queue::push('AudioProcess'),它本身也会触发一个exec('sh some_script.sh some_audio.mp3')来处理音频并将应用程序的音频模型状态设置为1完成时。
我做了很多上传测试,这是记录

1表示该AudioProcess.php工作人员已被处决,而0该AudioProcess.php工作人员尚未被处决。
我想它可能来自Laravel Queues管理或beantalkd,但我在日志中找不到任何相关内容(laravel.log,我的主管queue.log,php_errors.log)。
我在同一台服务器上运行暂存和生产环境,因此有两个Laravel应用程序,因此两个php artisan queue:listen命令同时运行(每个命令都--env指定了),如果这与我的问题有关。几周前它运行良好,然后我放弃了该项目一段时间,最近又收回了它。我做了一些apt-get update && apt-get upgrade了。
为什么Laravel或beantalkd无法处理所有作业?
发生该问题的原因可能是两个php artisan queue:listen(对于每个环境)将作业发送到同一个 beanstalkd 队列 ( default)。这导致了某种冲突,但我不能透露更多......
我通过将每个环境的php artisan queue:listen发送作业发送到[environment]队列来修复它。因此我现在有两个队列,staging并且production。
怎么做
创建一个app/config/[environment]/queue.php将
[connections => [beanstalkd => [queue]]]参数覆盖default
为该环境的名称的参数。
向 Artisan 指定队列名称:php artisan queue:listen --queue=[environment]
| 归档时间: |
|
| 查看次数: |
891 次 |
| 最近记录: |