我正在调查微软的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调用来处理的吗,因此我应该重试自己吗?
如果能链接到文档,说明更多相关内容(至少一次,重试等),那就太棒了。
发布于 2021-04-19 20:27:22
您可以看到here按照设计,Orleans没有任何类型的重试策略。
但您可以使用简单的try catch块(或使用特定的库,如Polly)自行添加它。
https://stackoverflow.com/questions/66601853
复制相似问题