Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么拉威尔或豆茎会跳槽?_Php_Laravel_Supervisord_Beanstalkd - Fatal编程技术网

Php 为什么拉威尔或豆茎会跳槽?

Php 为什么拉威尔或豆茎会跳槽?,php,laravel,supervisord,beanstalkd,Php,Laravel,Supervisord,Beanstalkd,我正在使用Laravel队列和beanstalkd管理音频转换,由supervisord监控 当用户上传音频文件时,它会进入AudioController.php,触发一个队列::push('AudioProcess'),它本身会触发一个exec('sh some_script.sh some_audio.mp3')来处理音频,并在完成后将应用程序音频模型状态设置为1 我上传了很多测试,下面是记录 1表示已执行AudioProcess.php工作进程,0表示未执行AudioProcess.ph

我正在使用Laravel队列beanstalkd管理音频转换,由supervisord监控

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

我上传了很多测试,下面是记录

1
表示已执行
AudioProcess.php
工作进程,
0
表示未执行
AudioProcess.php
工作进程

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

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


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

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

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

如何做

  • 创建一个覆盖
    [connections=>[beanstalkd=>[queue]]
    默认值中的参数 以该环境的名称命名

  • 指定要访问的队列的名称 Artisan:
    php Artisan队列:侦听--queue=[environment]


您是如何设置您的supervisor的,共享一些代码的,这些代码是否正在运行?supervisord正在加载正确的配置,并且它应该运行的守护进程(
php artisan queue:listen--env=[…]
for
staging
production
)正在运行。问题来自Laravel队列或beanstalkd,它们不能完成所有作业。无论如何,这对你很有用,这里是关于
supervisorORD
php
ps afx的和。我在你的
supervisor配置文件中没有找到任何
[program]
部分。另外,您是否使用终端/命令提示符下的
add
命令添加了流程?请参阅暂存配置(第二个链接)。是的,它已正确添加,并且正在运行,正如您在
ps afx
转储中所看到的。谢谢,这让我失去了理智!我在同一台服务器上有三个站点,作业被错误的队列接收