在正常控制器中,我的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可以在没有数据库访问的情况下正常工作。但是当它们放在一起时,数据库将失败。
任何帮助将不胜感激。
答案 0 :(得分:1)