【问题标题】:Call GetOrAddAsync in the OnOpenAsync method在 OnOpenAsync 方法中调用 GetOrAddAsync
【发布时间】:2019-05-21 19:06:36
【问题描述】:

我使用StatefulServiceIReliableDictionary

目前,我会在任何需要这本词典的地方拨打StateManager.GetOrAddAsync<IReliableDictionary>

最佳实践是在StatefulServiceOnOpenAsync 方法中只调用一次StateManager.GetOrAddAsync<IReliableDictionary> 并将返回值存储在成员中吗?

【问题讨论】:

    标签: azure azure-service-fabric service-fabric-stateful reliable-dictionary


    【解决方案1】:

    根据官方文档here,不建议存储可靠的集合引用。

    我们不建议您保存对可靠集合的引用 类成员变量或属性中的实例。必须特别小心 确保将引用设置为一个实例 服务生命周期中的时间。可靠状态管理器处理 这对您有用,并且针对重复访问进行了优化。

    【讨论】:

      【解决方案2】:

      没关系。 I've asked it 产品团队收到此回复:

      您可以在本地缓存 GetOrAddAsync 的结果,但这并不重要,因为 statemanager 会自动为您执行此操作。有些人认为保持本地更容易,但我从来没有这样做,因为现在你有一些生命周期的事情要处理(你有一个不受状态管理器获取锁保护的东西的引用,所以你可以看到一些不同的异常,但你什么都没有无论如何都不必处理)。

      我插入的斜体文字。

      【讨论】:

        猜你喜欢
        • 2020-07-04
        • 1970-01-01
        • 2021-12-05
        • 1970-01-01
        • 2012-09-28
        • 2020-09-17
        • 2015-05-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多