问题是:当我启动php artisan queue:work --tries=3
该项目仅在第一次加入MySqlConnector.php
。
因此,我第一次可以连接到正确的数据库。
\DB::disconnect('database name')
,\Cache::flush();
config(['database.connections.queue' => $correctDatabase]);
还有几个我什至不记得了。
如何确保每当输入队列工作器时,我都将连接回数据库?
注意:我使用connect方法在MySQLConnector中输入正确的数据库配置。
public function connect(array $config)
{
// ...
// multipleDatabases is my custom function
if(multipleDatabases('connection') !== null) {
$config = multipleDatabases('database');
}
// ...
}
此代码可以正常工作。
答案 0 :(得分:0)
我使用listen
而非worker
解决了这个问题
php artisan queue:listen --tries=3
使用queue:listen命令时,代码更改后不必手动重新启动工作程序;但是,此命令的效率不如queue:work: