如何在服务结构中为服务远程调用设置超时
how to set a timeout for a service remoting call in service fabric
我有一个服务结构服务,我从另一个服务中这样调用它:
var checkerProxy = new ServiceProxyFactory<ICheck>(uri);
var checker = checkerProxy.CreateSingletonServiceProxy();
success = await checker.CheckMe();
如果通话时间超过超时时间,我想中止通话。
如何在服务结构中为远程调用设置超时?
编辑 1:注意我可以这样做:
success = checker.CheckMe().Wait(TimeSpan.FromSeconds(10));
但这不会中止远程调用,只会在超时时停止等待任务完成,而我没有 return 值。
您可以使用 FabricTransportRemotingSettings
在代理中设置超时:
FabricTransportRemotingSettings settings = new FabricTransportRemotingSettings();
settings.OperationTimeout = TimeSpan.FromMinutes(5);
return new ServiceProxyFactory(
(h) =>
{
return new FabricTransportServiceRemotingClientFactory(settings);
});
我有一个服务结构服务,我从另一个服务中这样调用它:
var checkerProxy = new ServiceProxyFactory<ICheck>(uri);
var checker = checkerProxy.CreateSingletonServiceProxy();
success = await checker.CheckMe();
如果通话时间超过超时时间,我想中止通话。
如何在服务结构中为远程调用设置超时?
编辑 1:注意我可以这样做:
success = checker.CheckMe().Wait(TimeSpan.FromSeconds(10));
但这不会中止远程调用,只会在超时时停止等待任务完成,而我没有 return 值。
您可以使用 FabricTransportRemotingSettings
在代理中设置超时:
FabricTransportRemotingSettings settings = new FabricTransportRemotingSettings();
settings.OperationTimeout = TimeSpan.FromMinutes(5);
return new ServiceProxyFactory(
(h) =>
{
return new FabricTransportServiceRemotingClientFactory(settings);
});