【发布时间】:2021-10-21 16:43:48
【问题描述】:
我有一个使用字符串键的谷物。我希望这个grain能够引用同名的流。
public class StreamGrain : Grain, IGrainWithStringKey
{
protected IAsyncStream<IPointModel> _dataStream = null;
protected IAsyncStream<ITransactionModel> _actionStream = null;
public override Task OnActivateAsync()
{
var identity = this.GetPrimaryKey(); // this.GetPrimaryKeyString();
var streamProvider = GetStreamProvider("Inputs");
_dataStream = streamProvider.GetStream<IPointModel>(identity, "Points");
_actionStream = streamProvider.GetStream<ITransactionModel>(identity, "Transactions");
return base.OnActivateAsync();
}
}
同时,当我尝试使用GetPrimaryKey 将grain 与流连接时,我得到了error,因为grain 使用字符串作为键,而不是GUID。同时,奥尔良的流似乎只能由 GUID 引用。因此,无法使用相同的名称来调用grain 和相关流。
问题
如何使用相同的名称连接grain 和stream?换句话说,无论一个grain被激活或停用多少次,我都想获得对同一个流的引用。
【问题讨论】:
标签: orleans