【发布时间】:2015-01-06 05:09:45
【问题描述】:
我正在使用 Laravel 队列 和 beanstalkd 管理音频转换,由 supervisord 监控。
当用户上传音频文件时,它会转到触发Queue::push('AudioProcess') 的AudioController.php,它本身会触发exec('sh some_script.sh some_audio.mp3') 来处理音频并在完成后将应用程序音频模型状态设置为1。
我做了一堆上传测试,这里是记录
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 不处理所有作业?
【问题讨论】:
-
你是如何设置你的主管,分享一些代码,运行的吗?
-
supervisord 正在运行并加载了正确的配置,并且它应该运行的守护进程(
php artisan queue:listen --env=[...]forstaging和production)正在运行。问题来自 Laravel 队列或 beanstalkd,它们不能完成所有工作。无论如何它对你有用,这里是supervisord main configuration 和staging configuration。 -
另外,
ps afx中的here is a dump 涉及supervisord和php。 -
我在您的
supervisor config file中没有找到任何[program]部分。另外,您是否在终端/命令提示符下使用add <process_name>命令添加了进程? -
查看暂存配置(第二个链接)。是的,它已正确添加并正在运行,正如您在
ps afx转储中看到的那样。
标签: php laravel supervisord beanstalkd