【发布时间】:2018-11-06 14:05:25
【问题描述】:
我有一项服务,其中包含大量传入订单,我将这些订单存储到 IReliableDictionary 中。随着新订单的到来,我需要在程序的整个生命周期内更新和维护这些订单的单独排序列表。
我如何有效地并发地将 IReliableDictionary 中的数据转入不同的排序集合,这样我就可以避免死锁并且不必在每次新订单进入时都从头开始重建排序列表?
编辑:查看文档后,我相信我可以通过在提交前更新后更新本地内存排序集合来实现这一点。
using (var tx = this.StateManager.CreateTransaction())
{
bool addOk = await orderDictionary.TryAddAsync(tx, 123, someOrderToAdd);
if (addOk)
{
this.SortedOrders.Add(someOrderToAdd);
}
await tx.CommitAsync();
}
有人可以确认我对文档的理解是正确的,并且类似上面的实现不会导致并发问题吗?
【问题讨论】:
标签: azure azure-service-fabric service-fabric-stateful