小编Jon*_*swg的帖子

使用 Orleans 的相同 Grain 接口的多个实现

我有一个奥尔良应用程序,其结构如下:

public interface IGraintest : Orleans.IGrainWithGuidCompoundKey
{
    Task Init();
}



public abstract class GraintestImpl<T> : Grain, IGraintest, Deserializer<T>
{
    string streamName;
    public Task Init()
    {
        return Task.CompletedTask;
    }


    public override async Task OnActivateAsync()
    {
        var primaryKey = this.GetPrimaryKey(out streamName);
        var streamProvider = GetStreamProvider("SMSProvider");
        var stream = streamProvider.GetStream<String>(primaryKey, streamName);

        // To resume stream in case of stream deactivation
        var subscriptionHandles = await stream.GetAllSubscriptionHandles();

        if (subscriptionHandles.Count > 0)
        {
            foreach (var subscriptionHandle in subscriptionHandles)
            {
                await subscriptionHandle.ResumeAsync(OnNextMessage);
            }
        }

        await stream.SubscribeAsync(OnNextMessage);
    } …
Run Code Online (Sandbox Code Playgroud)

c# stream orleans

2
推荐指数
1
解决办法
1427
查看次数

标签 统计

c# ×1

orleans ×1

stream ×1