Это мой код:
@lru_cache(maxsize=1)
def connect(username, database, hostname, password):
try:
connection = pymysql.connect(
db=database,
host=hostname,
user=username,
passwd=password,
)
except Exception as ERROR:
logger.critical("Connection Issue: %s", ERROR)
sys.exit(1)
return connection
class KlondikeConnection:
def query(self, ids):
secret = self.get_secret()
logger.info("Retrieved Klondike Secrets")
connection = connect(secret["username"], secret["database"], secret["hostname"], secret["password"])
cursor = connection.cursor(pymysql.cursors.DictCursor)
logger.info("Executing Klondike mapping select query")
cursor.execute(self.build_query(), ids)
record = cursor.fetchone()
logger.info("Executed Klondike mapping select query")
logger.info(f"record: {record}")
return record
По сути, я обнаружил, что новые записи, которые были добавлены в базу данных между созданным объектом соединения и когда был выполнен поиск, не были найдены, когда я кэшировать объект подключения, но когда я удаляю декоратор lru_cache, новые записи были найдены. Сохраняют ли объекты соединения внутреннюю временную метку? Есть идеи, почему это может происходить?