php - yii2 queue proc_open 将第一个参数作为字符串除外,但给出了数组
问题描述
嗨,我有电子邮件工作队列。但是当我创建一个新任务时,我有这个错误:
PHP Warning 'yii\base\ErrorException' with message 'proc_open() expects parameter 1 to be string, array given'
in /var/www/112kilo/vendor/symfony/process/Process.php:285
Stack trace:
#0 /var/www/112kilo/vendor/symfony/process/Process.php(196): Symfony\Component\Process\Process->start()
#1 /var/www/112kilo/vendor/yiisoft/yii2-queue/src/cli/Command.php(192): Symfony\Component\Process\Process->run()
#2 /var/www/112kilo/vendor/yiisoft/yii2-queue/src/cli/Command.php(125): yii\queue\cli\Command->handleMessage()
#3 /var/www/112kilo/vendor/yiisoft/yii2-queue/src/cli/Queue.php(144): yii\queue\cli\Command->yii\queue\cli\{closure}()
#4 /var/www/112kilo/vendor/yiisoft/yii2-queue/src/cli/Queue.php(144): ::call_user_func:{/var/www/112kilo/vendor/yiisoft/yii2-queue/src/cli/Queue.php:144}()
#5 /var/www/112kilo/vendor/yiisoft/yii2-queue/src/drivers/file/Queue.php(77): yii\queue\cli\Queue->handleMessage()
#6 /var/www/112kilo/vendor/yiisoft/yii2-queue/src/cli/Queue.php(117): yii\queue\file\Queue->yii\queue\file\{closure}()
#7 /var/www/112kilo/vendor/yiisoft/yii2-queue/src/cli/Queue.php(117): ::call_user_func:{/var/www/112kilo/vendor/yiisoft/yii2-queue/src/cli/Queue.php:117}()
#8 /var/www/112kilo/vendor/yiisoft/yii2-queue/src/drivers/file/Queue.php(86): yii\queue\cli\Queue->runWorker()
#9 /var/www/112kilo/vendor/yiisoft/yii2-queue/src/drivers/file/Command.php(76): yii\queue\file\Queue->run()
#10 /var/www/112kilo/vendor/yiisoft/yii2/base/InlineAction.php(57): yii\queue\file\Command->actionListen()
#11 /var/www/112kilo/vendor/yiisoft/yii2/base/InlineAction.php(57): ::call_user_func_array:{/var/www/112kilo/vendor/yiisoft/yii2/base/InlineAction.php:57}()
#12 /var/www/112kilo/vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams()
#13 /var/www/112kilo/vendor/yiisoft/yii2/console/Controller.php(148): yii\base\Controller->runAction()
#14 /var/www/112kilo/vendor/yiisoft/yii2/base/Module.php(528): yii\console\Controller->runAction()
#15 /var/www/112kilo/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction()
#16 /var/www/112kilo/vendor/yiisoft/yii2/console/Application.php(147): yii\console\Application->runAction()
#17 /var/www/112kilo/vendor/yiisoft/yii2/base/Application.php(386): yii\console\Application->handleRequest()
#18 /var/www/112kilo/yii(23): yii\base\Application->run()
#19 {main}
我的 PHP 版本是 7.0,Yii2 - 2.0.15,Yii2-queue - 2.1.1
经过一番搜索,我看到了“给定数组”变量,它看起来像这样:
array(9) {
[0] =>
string(15) "/usr/bin/php7.0"
[1] =>
string(20) "/var/www/112kilo/yii"
[2] =>
string(10) "queue/exec"
[3] =>
int(183)
[4] =>
int(300)
[5] =>
int(1)
[6] =>
int(22989)
[7] =>
string(11) "--verbose=1"
[8] =>
string(9) "--color=0"
}
解决方案
通过将 symfony/进程从 v2.5 更新到 v4.1 解决了这个问题
推荐阅读
- c++ - 模糊 GDI+ 文本(DrawString)
- rust - 实现 PartialEq 以比较不同特征的对象
- jira - 将数据从 Jira Cloud 迁移到现有 Jira 服务器
- java - Spring Boot 如何知道 MessageMapping 指定了 Jms Queue 还是 Websocket 主题?
- java - 如何从另一个Java类中获取文本字段值
- google-analytics - GA 交易推送使用交易 ID 作为产品 ID
- javascript - 如何使用酶来监视反应事件侦听器?
- python - 如何将关键字传递给函数以使用默认参数
- c - 在子进程中调用 dup2 导致父的标准输入关闭
- css - 在不使用绝对位置或固定位置的情况下将 div 与页面底部对齐