是否有建議的方法在 Google App Engine 中設定全域連接?我目前使用的方法似乎有點粗糙,我這樣做是這樣的:
import pymysql
from flask import Flask, jsonify
# lazy loading?
db_conn = None
db_cursor = None
def get_db():
global db_conn, db_cursor
if (db_conn, db_cursor) == (None, None):
global_conn = pymysql.connect(user="x", password="y", database="z", host="w", charset='utf8')
global_cursor = conn.cursor()
return (db_conn, db_cursor)
app = Flask(__name__)
@app.route('/')
def hello():
return jsonify(hello='world')
@app.route('/db')
def db():
conn, cursor = get_db()
cursor.execute("SELECT * FROM mytable LIMIT 50")
res = cursor.fetchall()
return res
uj5u.com熱心網友回復:
由于資料庫連接可能由于某種原因而被丟棄,因此 Google 建議使用連接池來連接資料庫(請參閱檔案)。
他們還有一個作為連接池一部分的全域連接的作業示例。在鏈接的示例中,您會注意到它們包含注釋以在您的應用程式加載后立即呼叫連接,而不是在首次發出請求時呼叫
uj5u.com熱心網友回復:
不算太差。但是,如果您的實體中總是需要資料庫連接,那么您可以在運行時直接啟動資料庫連接
import pymysql
from flask import Flask, jsonify
# eager loading?
db_conn = pymysql.connect(user="x", password="y", database="z", host="w", charset='utf8')
db_cursor = db_conn.cursor()
app = Flask(__name__)
...
代碼比較簡單,但是會影響你的啟動時間。如果您一次需要資料庫連接,請不要擔心。但是,如果您的許多端點不需要資料庫訪問,則可能會很糟糕。這取決于你,一如既往,這取決于!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/507764.html
標籤:Google Cloud Collective Python python-3.x 谷歌应用引擎 谷歌云平台