Подтвердить что ты не робот

Метод Boto connect_xxx и пулы соединений

Если я вызываю boto.connect_xxx, где xxx - некоторая служба (dynamodb, s3 и т.д.) несколько раз, создает ли каждый новый пул соединений? То, что я хотел бы сделать, это что-то вроде этого (пример в Flask):

@app.before_request
def before_request():
    g.db = connect_dynamodb()

чтобы убедиться, что я всегда подключаюсь, но я не хочу делать это перед каждым запросом, если он будет каждый раз создавать новые маркеры безопасности и т.д. весь rigamarole. Безопасно ли просто вызывать connect_xxx() один раз при запуске приложения и полагаться на boto для создания новых соединений по мере необходимости и т.д.?

4b9b3361

Ответ 1

Наилучшим подходом является вызов метода connect_xxx один раз, когда ваше приложение запускается и полагается на boto для управления соединением с этого момента. Единственным исключением из этого правила является использование нескольких потоков. В этом случае каждый поток должен создать свое собственное соединение, поскольку boto использует httplib, который не является потокобезопасным.

Даже если вы вызываете метод connect_xxx перед каждым запросом, вы действительно должны быть в порядке. Boto объединяет соединение на уровне класса и должно обрабатывать это довольно эффективно.