def backend_layer(self):
if self._backend_layer is None:
cache_key = (self.backend_type, dict_to_hashable(self.backend_layer_kwargs))
if cache_key not in self._backend_layer_cache:
with self._get_timer('backend.initialize'):
backend_layer_kwargs = deepcopy(self.backend_layer_kwargs)
if self.backend_type == REDIS_BACKEND_TYPE_SENTINEL:
self._backend_layer_cache[cache_key] = SentinelRedisClient(**backend_layer_kwargs)
else:
self._backend_layer_cache[cache_key] = StandardRedisClient(**backend_layer_kwargs)
self._backend_layer = self._backend_layer_cache[cache_key]
# Each time the backend layer is accessed, use _this_ transport's metrics recorder for the backend layer
self._backend_layer.metrics_counter_getter = lambda name: self._get_counter(name)
return self._backend_layer
# noinspection PyAttributeOutsideInit
评论列表
文章目录