Maxmind将新的DatabaseReader作为单线程注入,以避免一次又一次地重新访问文件



在.net核心web应用程序中,我希望注入一个new DatabaseReader作为单例。因此,我在启动类中使用AddSingelton。

services.AddSingleton(x => new DatabaseReader(pathToFile));

你认为重用DatabaseReader是个好主意吗
谢谢

单个连接是个坏主意-如果对连接的访问被正确锁定,则意味着网站/应用程序一次只能为一个用户提供服务。

这意味着您的应用程序可伸缩性非常有限,无法获得大量用户。

还有一个问题是,当你的连接没有很好地锁定时,事情可能会变得奇怪。

例如,一个线程可能会处理连接,而另一个线程正试图对其执行命令

一种更好的可能性是在需要时通过创建一个新的连接对象来使用连接池。因此,您可以同时处理多个请求,并且您的限制应该是数据库。

是的,您应该在并发请求中重用DatabaseReader。读取器是线程安全的,并且不依赖于锁来实现线程安全。

相关内容

  • 没有找到相关文章

最新更新