如果我多次调用 boto.connect_xxx,其中 xxx 是某个服务(dynamodb、s3 等),它是否每次都会创建一个新的连接池?我想做的是这样的(Flask 中的示例):
@app.before_request
def before_request():
g.db = connect_dynamodb()
确保我始终连接,但我不想在每个请求之前执行此操作,如果它每次都会创建新的安全令牌等整个繁琐的操作。在应用程序启动时仅调用一次 connect_xxx() 并依赖 boto 根据需要生成新连接等是否安全?
最好的方法是在应用程序启动时调用一次 connect_xxx 方法,并从此依赖 boto 来管理连接。该规则的唯一例外是如果您使用多个线程。在这种情况下,每个线程都应该创建自己的连接,因为 boto 使用非线程安全的 httplib。
即使您在每个请求之前调用 connect_xxx 方法,也应该没问题。 Boto 在类级别池连接,并且应该以非常有效的方式处理这个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)