Config::set() 将连接设置为不需要的设置

Config::set() sets connection to unwanted setting

我正在使用一个有 40 个监听守护进程的消息队列。队列中始终有消息,因此工作人员不断工作。队列中有针对不同客户的消息,我必须根据队列有效负载中包含的 xml 数据设置数据库。

在运行时使用 Config::set() 设置数据库时,数据被插入到各种数据库中,在正确的表中 - 但在错误的数据库中。有许多相同的数据库。

我正在尝试使用

设置数据库

Config::set('database.connections.usertable.database',$database);

在建立连接之前。我还在每个(也只有一些或一个)$table->create() 语句之前直接尝试 Config::set(),但没有成功。

根据 Laravel 的文档,Config::set() 应该只对这个请求有效,但是当有多个连接准确地设置配置值时,它似乎混淆了设置同时。

虽然我现在已经通过将 Model 扩展 setConnection()getConnection() 以及不同的配置解决了上述问题,但我很好奇为什么会这样。

Config 难道不应该只针对它所在的确切请求进行设置吗?

Graham Campbell 刚刚在 github 上回答了问题:

Everything is persisted when you have daemon workers. They are NOT requests.