Python Boto connect_xxx方法和连接池

Python Boto connect_xxx方法和连接池,python,amazon-web-services,flask,boto,Python,Amazon Web Services,Flask,Boto,如果我多次调用boto.connect\u xxx,其中xxx是某个服务(dynamodb、s3等),它是否每次都创建一个新的连接池?我想做的事情如下(烧瓶中的示例): 为了确保我总是连接,但我不想在每次请求之前这样做,如果它每次都会创建新的安全令牌,等等,整个rigamarole。在应用程序启动时只调用connect_xxx()一次是否安全,并依赖boto根据需要生成新连接等?最好的方法是在应用程序启动时调用connect_xxx方法一次,然后依赖boto管理连接。该规则的唯一例外是使用多个线

如果我多次调用boto.connect\u xxx,其中xxx是某个服务(dynamodb、s3等),它是否每次都创建一个新的连接池?我想做的事情如下(烧瓶中的示例):


为了确保我总是连接,但我不想在每次请求之前这样做,如果它每次都会创建新的安全令牌,等等,整个rigamarole。在应用程序启动时只调用connect_xxx()一次是否安全,并依赖boto根据需要生成新连接等?

最好的方法是在应用程序启动时调用connect_xxx方法一次,然后依赖boto管理连接。该规则的唯一例外是使用多个线程。在这种情况下,每个线程都应该创建自己的连接,因为boto使用的httplib不是线程安全的


即使在每次请求之前调用connect_xxx方法,也应该没有问题。Boto在类级别共享连接,应该以非常高效的方式处理此问题。

谢谢您的回答!谢谢boto本身,我不能没有它。您提到的线程引发了本质上相同主题的另一个问题。是否有关于此信息的文档参考?
connect\u xxx
方法返回
AWSAuthConnection
子类的实例,它确实是线程安全的。每个进程(和连接参数)只能执行一次,而不是在每个线程中。连接池未存储在类级别。@malthe是否有任何引用指向它(
AWSAuthConnection
是线程安全的)?@TuukkaMustonen,因为连接对象使用的池使得每个连接一次只能由一个线程使用。
@app.before_request
def before_request():
    g.db = connect_dynamodb()