gpt4 book ai didi

session - ravendb 长时间运行的 session

转载 作者:行者123 更新时间:2023-12-02 18:28:10 25 4
gpt4 key购买 nike

我们的网站使用 RavenDB。该站点将其所有数据加载到内存中(不是很多),以便能够处理大量负载。我们在后台线程中加载数据,该线程定期检查数据库(RavenDB + sqlserver)是否存在任何新数据,如果存在,则将该数据加载到内存中。

我们尝试了很多方法来解决每个 session 对 RavenDB 进行 30 次查询的烦人请求限制。由于 Raven 没有任何机制在我们完成检查/加载循环的一次迭代后“重置” session ,并且由于无法告诉 Structuremap 我们真的想要一个新 session 尽管我们仍然是与以前相同的线程,但我们有点卡住了。

最后,我重新构建了架构,以便我们的存储库现在使用 RavenSessionProxy,它为我们加载结构图,可以通过加载/获取循环重置它(当我们重置它时,它会手动实例化一个新的文档 session )。

这真的是唯一的方法吗? Raven 内部是否没有任何机制可以说“嘿 Session 先生,我现在已经受够了你了,去冲刷一下自己,下次我调用你时保持新鲜感并做好准备)”或者告诉 Structuremap“嘿,SM!下一步当我向你请求 IDocumentSession 时,给我一个新的,我厌倦了这个旧的”

最佳答案

正如 Ayende 指出的那样, session 应该是短暂的。让它依赖于 IDocumentStore,然后为每次运行创建/处置 session ,而不是让后台作业依赖于 session 。 IDocumentStore 可以是在启动时插入到容器中的单例。

关于session - ravendb 长时间运行的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9972503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com