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.
我正在使用一个有 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.