排队时无法使用数据库驱动程序

时间:2018-10-17 10:24:07

标签: laravel queue jobs

在正常控制器中,我的mySQL和MongoDB可以正常工作,但是, 当我在排队等待访问数据库的作业时,出现错误, 甚至我都使用db驱动程序的名称空间。

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use App\model\Product;
use Illuminate\Support\Facades\DB;
use Illuminate\Foundation\Bus\Dispatchable;


class ProductOrderTimer implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

     public $orderId;
     public $orderLife;

     public function __construct($orderId,$orderLife)
     {
         $this->orderId = $orderId;
         $this->orderLife = $orderLife;
     }


    public function handle()
    {

      $test = Product::all();
    //...other code

}

错误消息:

[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可以在没有数据库访问的情况下正常工作。但是当它们放在一起时,数据库将失败。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

似乎您没有安装pdo驱动程序,您需要这些驱动程序才能创建pdo连接

看看手册:

http://php.net/manual/en/pdo.drivers.php