作者q10242 (黑田佑司)
看板PHP
标题[请益] Laravel的Queue没办法存取资料库
时间Thu Oct 18 11:25:21 2018
我的Laravel 同时使用了mongoDB和MySQL 两个资料库
两个资料库如果是在一般的Controller 或者router
都可以正常存取
另外 我的Queue是用Job排程到redis里面後 过一段时间再进行工作
Queue的工作只要没有牵涉到资料库存取 都可以正常运作
不过一但我把有存取资料库这个步骤的程式码放到Job里面去Queue就不一样了
如果是mySQL , Log就会记录这个问题
[2018-10-17 18:10:39] local.ERROR: PDOException: could not find driver in
/var/www/html/laravel/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:40
如果是MongoDB 就会记录这个问题
[2018-10-17 13:37:48] local.ERROR:
MongoDB\Driver\Exception\InvalidArgumentException: Failed to parse MongoDB
URI: 'mongodb://mongo:tcp://172.17.0.4:27017'. Invalid host string in URI. in
/var/www/html/laravel/vendor/mongodb/mongodb/src/Client.php:83
我本来是想说用Job 呼叫static function,会出现这问题,後来又尝试把程式码直接放到Job里面,也不行
我有use DB的相关namespace 所以我想应该不是use方面的问题
我不懂的地方是,Queue可以单独work ,DB可以单独work 但是两个凑在一起就没办法
为啥
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.176.128.70
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1539833124.A.A49.html
1F:推 MoMoShota: 问一下,php artisan tinker 中能正常存取资料库吗? 10/19 10:47
我後来也是去试了tinker 发现其实应该是伺服器的php跟在伺服器终端打php的指令用的版本不同
所以套件没有共用 问题应该在这里
※ 编辑: q10242 (180.176.128.70), 10/19/2018 11:06:13
※ 编辑: q10242 (180.176.128.70), 10/19/2018 13:11:00