【问题标题】:Microsoft Orleans - grains calling grains微软奥尔良 - 谷物调用谷物
【发布时间】:2021-06-10 14:04:18
【问题描述】:

我正在调查 Microsoft Orleans。我已经在 docker 中设置了一个集群,tt 运行良好。我正在尝试阅读有关消息传递的文档,但在重试时似乎找不到任何内容。如果我有一粒粒叫做粒粒,像这样:

   public class HelloGrain : Orleans.Grain, IHello
    {
        private readonly ILogger logger;
        private IOtherGrain otherGrain;

        public HelloGrain(ILogger<HelloGrain> logger)
        {
            this.logger = logger;
        }

        public override async Task OnActivateAsync()
        {
             otherGrain = GrainFactory.GetGrain(this.GetPrimaryKeyString());
             await base.OnActivateAsync();
        }

        Task<string> IHello.SayHello(string greeting)
        {
            string otherGrainReturn = await this.otherGrain.MethodAsync();
            return Task.FromResult($"\n Client said: '{greeting}', so HelloGrain says: Hello!");
        }
    }

string otherGrainReturn = await this.otherGrain.MethodAsync(); 是否以某种方式在失败时重试?是否只有超时才能决定呼叫何时失败?这是作为基本的 HTTP 调用处理的,因此我应该重试自己吗?

如果有 som 链接到说明该主题的更多内容(至少一次重试等),这可能会很棒。

【问题讨论】:

标签: orleans


【解决方案1】:

您可以看到here,按照设计,Orleans 没有任何类型的重试策略。

但您可以使用简单的 try catch 块自行添加(或使用特定库,如 Polly)。

【讨论】:

    猜你喜欢
    • 2019-01-05
    • 1970-01-01
    • 2021-10-21
    • 2020-12-15
    • 2016-02-28
    • 1970-01-01
    • 2020-11-10
    • 1970-01-01
    • 2019-04-04
    相关资源
    最近更新 更多