Установка работает при нормальной нагрузке, но во время пикового трафика я часто сталкиваюсь с этой ошибкой:
Код: Выделить всё
Unclosed client session
client_session:
Cloud Function:
- Region: us-west2
- Memory: 512MiB, vCPUs: 1
- Макс. Экмеры: 100 , одновременность: 80
- Тайм -аут запроса: 300S
- VPC Network подключен (Private IP of DB)
- Connector Connector для соединений
[*] vcpus: 2 , память: 8gb , хранилище: 10 ГБ (HDD)
[*] только частный IP, нет публичного доступа
[*], расположенный в US-WEST2-C /> < /ul>
код подключения базы данных < /h3>
Код: Выделить всё
from google.cloud.sql.connector import Connector, IPTypes
import pg8000
try:
connector = Connector()
conn = connector.connect(
INSTANCE_CONNECTION_NAME,
"pg8000",
user=DB_USER,
password=DB_PASS,
db=DB_NAME,
ip_type=IPTypes.PRIVATE if PRIVATE_IP == 'true' else IPTypes.PUBLIC,
)
logger.info("Successfully established database connection")
except Exception as conn_err:
logger.error(f"Database connection failed: {str(conn_err)}")
return False, f"DB connection failed: {conn_err}"
Как лучше всего обрабатывать подключения базы данных в этой настройке, чтобы высокие объемы запроса не вызывали сессии с неопределенным клиентом ,
Я не должен использовать spife ,
connection> connect надежно? Однако в этом случае функция облака вообще не смогла подключиться к базе данных. Когда я вместо этого создаю разъем внутри функции для каждого запроса, он успешно подключается, но это кажется неэффективным и может вызвать слишком много соединений во время высокого трафика. Я хочу понять правильный способ обработки подключений базы данных в этой настройке, чтобы она могла правильно масштабироваться при высокой нагрузке.
Подробнее здесь: https://stackoverflow.com/questions/797 ... -functions