Microsoft Orleans - 谷物叫谷物
Microsoft Orleans - grains calling grains
我正在调查 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 调用处理的吗,因此我应该自己重试吗?
如果 link 文档可以提供更多有关该主题的信息(至少重试一次等),那会很棒。
您可以看到 here 按照设计,Orleans 没有任何类型的重试策略。
但是你可以自己添加一个简单的 try catch
块(或者使用像 Polly
这样的特定库)。
我正在调查 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 调用处理的吗,因此我应该自己重试吗?
如果 link 文档可以提供更多有关该主题的信息(至少重试一次等),那会很棒。
您可以看到 here 按照设计,Orleans 没有任何类型的重试策略。
但是你可以自己添加一个简单的 try catch
块(或者使用像 Polly
这样的特定库)。