Laravel队列-缓存中的数据库?

时间:2019-12-02 22:10:14

标签: php laravel amazon-sqs laravel-queue

  1. 我有一个具有多个数据库的应用程序;
  2. 我具有“选择”正确数据库的功能;

问题是:当我启动php artisan queue:work --tries=3

该项目仅在第一次加入MySqlConnector.php。 因此,我第一次可以连接到正确的数据库。

尝试失败

  1. 断开\DB::disconnect('database name')
  2. 清除缓存\Cache::flush();
  3. 更改mysql默认值config(['database.connections.queue' => $correctDatabase]);

还有几个我什至不记得了。

如何确保每当输入队列工作器时,我都将连接回数据库?

  

注意:我使用connect方法在MySQLConnector中输入正确的数据库配置。

public function connect(array $config)
{
     // ...
        // multipleDatabases is my custom function 
        if(multipleDatabases('connection') !== null) {
            $config = multipleDatabases('database');
        }
    // ...
}

此代码可以正常工作。

1 个答案:

答案 0 :(得分:0)

我使用listen而非worker解决了这个问题

php artisan queue:listen --tries=3

Laravel documentation

  

使用queue:listen命令时,代码更改后不必手动重新启动工作程序;但是,此命令的效率不如queue:work: