您可以强制Npgsql重置所有池连接,或者在触发后更新活动连接的搜索路径吗



这是我们的问题。每天,我们通过用另一个模式替换一个模式来更新搜索路径。

因此,如果今天我们的搜索路径是public, alpha,明天它将是public, beta,然后在第二天返回到public, alpha。我们这样做是因为我们希望用户从最新的模式中获取数据,同时我们对前一天的数据进行一些处理。

我们的问题是,每当我们切换搜索路径时,我们都有一些时间等待Npgsql池中的连接关闭,然后获得更新的搜索路径。如果你加上一些用户可能会不断地向我们的API发送垃圾邮件,我们可能会在更长时间内使用相同搜索路径的连接。

有没有一种方法可以使用某种触发器更新整个池的搜索路径?我知道我们可以为每个连接设置一个生存期,并为一个连接留出大约30分钟的时间,直到它关闭,但我希望有更好的解决方案。

而不是"切换搜索路径";(需要更多关于这到底意味着什么的细节(,你可以简单地在连接字符串中包括搜索路径,这意味着你将在两个连接字符串之间交替。由于每个连接字符串都有自己的池,所以没有问题。由于连接修剪,旧的池将逐渐清空。

否则,可以通过调用NpsgqlConnection.ClearPool(或ClearAllPools(来清空连接池。

最新更新