При использовании lru_cache
в модуле утилит, после оформления метода и вызова из двух разных экземпляров класса, я обнаружил, что cache_info()
показывает только один удар каждый раз, когда вызывается декорированный метод.
awsUtils.py :
@lru_cache(maxsize=32)
def getRdsDetailsCached(name, region):
return getRdsDetails(name, region):
def getRdsDetails(name, region):
client = boto3.client('rds', region)
response = client.describe_db_instances(DBInstanceIdentifier=name,)
return response['DBInstances']
Replication.py
class Replication(ActionBase):
def __init__(self, **entries):
super().__init__(**entries)
self.rdsDetails = awsUtils.getRdsDetailsCache('my-db', 'us-west-2')
Postgress.py
class Postgress(DependencyBase):
def __init__(self, **entries):
super().__init__(**entries)
self.rdsDetails = awsUtils.getRdsDetailsCache('my-db', 'us-west-2')
Когда инициализируются два вышеупомянутых класса, я ожидаю, что первый экземпляр вызовет awsUtils.getRdsDetailsCache
, что создаст кэш, а любой другой экземпляр будет использовать этот кэш повторно.Однако фактический результат показывает, что число попаданий равно 1.