aio-libs/aiocache
在 GitHub 查看Clear() method with 'namespace' parameter fails: TypeError: delete() missing 1 required positional argument: 'key'
Open
#472 创建于 2019年12月24日
buggood first issue
仓库指标
- Star
- (1,432 star)
- PR 合并指标
- (30 天内没有已合并 PR)
描述
I want to use certain namespace while cleaning redis cache, like below:
coros.append(asyncio.ensure_future(cache.clear(namespace='main')))
Error occured when redis cache doesn't have key with namespace 'main' :
coros.append(asyncio.ensure_future(cache.clear(namespace='dialog_api')))
I've found the problem in file aiocache/backends/redis.py in 187 line:
async def _clear(self, namespace=None, _conn=None):
if namespace:
keys = await _conn.keys("{}:*".format(namespace))
await _conn.delete(*keys)
else:
await _conn.flushdb()
return True
So, I want to fix it by adding if statement, like:
async def _clear(self, namespace=None, _conn=None):
if namespace:
keys = await _conn.keys("{}:*".format(namespace))
if keys:
await _conn.delete(*keys)
I could be wrong or miss something, if anybody faced with it please comment