我正在使用 aiocache @cached 装饰器来缓存 asyncio NATS 请求,但在将数据返回给客户端时遇到问题我的代码:
@cached(key="result", ttl=1000, cache=Cache.REDIS, serializer=JsonSerializer(), port=6379)
async def timed_nats_request(self, topic, msg, timeout=None):
await asyncio.sleep(10)
msg = json.dumps(msg)
response = await self.nc.nc.timed_request(topic, msg.encode('utf-8'), timeout=20.0)
result = json.loads(response.data)
if 'result' in result:
return result['result']
else:
return result
Aiocache 的 @cached 装饰器将我的消息缓存到 Redis 但不会将其返回给客户端,所以我的意思是我可以从 Redis db 中找到缓存的数据,但它不会通过函数 (timed_nats_request) 返回它
我的缓存配置:
caches.set_config({
'default': {
'cache': "aiocache.SimpleMemoryCache",
'serializer': {
'class': "aiocache.serializers.JsonSerializer"
}
},
'redis_alt': {
'cache': "aiocache.RedisCache",
'endpoint': "127.0.0.1",
'port': 6379,
'timeout': 100,
'serializer': {
'class': "aiocache.serializers.JsonSerializer"
},
'plugins': [
{'class': "aiocache.plugins.HitMissRatioPlugin"},
{'class': "aiocache.plugins.TimingPlugin"}
]
}
})
请帮帮我!