ServiceStack Redis重试超时异常
ServiceStack Redis retry timeout exception
我在我的应用程序中使用ServiceStack.Redis
,我有一个get方法去redis(缓存)获取一些信息,但是如果redis断开连接,我调用存储库从真实的数据库
try
{
IEnumerable<GetOrdensByIdQueryDTO> orders = await _redis.GetByHashId<GetOrdensByIdQueryDTO>(request.Account);
if (orders == null || !orders.Any())
return orders.OrderByDescending(order => order.UpdatedAt);
return await GetFromWriteDataBase(request.Account);
}
catch (Exception)
{
return await GetFromWriteDataBase(request.Account);
}
如果redis断线了,我调用_redis.GetByHashId()
方法,10秒后会抛出异常,我需要去掉这个重试异常定时器,在调用前抛出,怎么办这样做吗?
我是这样注入 Redis 的:
services.AddSingleton<IRedisClientsManager>(serviceProvider =>
{
var cacheConfiguration = serviceProvider.GetRequiredService<CacheConfiguration>();
return new RedisManagerPool(cacheConfiguration.ConnectionString);
});
您可以通过以下方式调整 AutoRetry Timeout:
RedisConfig.DefaultRetryTimeout = 10000;
我在我的应用程序中使用ServiceStack.Redis
,我有一个get方法去redis(缓存)获取一些信息,但是如果redis断开连接,我调用存储库从真实的数据库
try
{
IEnumerable<GetOrdensByIdQueryDTO> orders = await _redis.GetByHashId<GetOrdensByIdQueryDTO>(request.Account);
if (orders == null || !orders.Any())
return orders.OrderByDescending(order => order.UpdatedAt);
return await GetFromWriteDataBase(request.Account);
}
catch (Exception)
{
return await GetFromWriteDataBase(request.Account);
}
如果redis断线了,我调用_redis.GetByHashId()
方法,10秒后会抛出异常,我需要去掉这个重试异常定时器,在调用前抛出,怎么办这样做吗?
我是这样注入 Redis 的:
services.AddSingleton<IRedisClientsManager>(serviceProvider =>
{
var cacheConfiguration = serviceProvider.GetRequiredService<CacheConfiguration>();
return new RedisManagerPool(cacheConfiguration.ConnectionString);
});
您可以通过以下方式调整 AutoRetry Timeout:
RedisConfig.DefaultRetryTimeout = 10000;