SAE的Tornado開發經驗

2021-09-20 06:08:10 字數 1083 閱讀 6188

sqlalchemy既不簡潔又缺乏一致性,但建表、重連、sql包裝、連線池這些dirty job總得有人做。sqlalchemy的使用必須注意以下問題:

連線的建立和關閉

因為sae的mysql超時時間設定得很短(10秒左右),因此在網路連線關閉的時候必須同時關閉資料庫連線。最好的辦法是都繼承乙個basehandler。

pythonclass basehandler(tornado.web.requesthandler):

def initialize(self):

self.session = db_session()

def on_finish(self):

self.session.close()

縮短重連時間

因為超時時間比mysql的通用配置要短,所以sqlalchemy的重連時間也必須同步,否則會報「mysql has gone away」的2006資料庫錯誤。我的配置僅供參考:

pythonengine = create_engine(db_config, pool_recycle=5, poolclass=nullpool)
一般都會選擇tornado的secure_cookie作為賬號的惟一憑證,上線必須找乙個不改變(重新部署後之前的cookie不失效)也不容易讓外人得知的字串做金鑰。我應用的secret_key:

pythoncookie_secret = 'test' if debug else sae.const.secret_key
sae的logging預設級別是warning,所以logging.info('')是不會生效的,最好在入口處設定:

pythonlogging.basicconfig(level=logging.info)
餘不一一,github傳送門:saetornado。

來自:建造者說

在Tornado下的C 開發

5.2 在tornado下的c 開發 基本的c 支援被 在tornado開發環境裡。vxworks提供了包含對所有程式的c 安全宣告的標頭檔案和必須的run time support.標準的tornado互動式開發工具如偵錯程式 debugger shell,和新增的載入器 loader 都包含了對...

mysql開發經驗 MySql開發經驗

1 wait timeout 預設288800秒 8小時 jdbc連線池maxwait或者maxldeltime這兩個引數要小於這個值,否則,當你的連線長時間沒和資料庫互動,伺服器早就把你的連線斷開了,而你的連線池還認為是有效連線,除非你設定testonborrow或者設定testonreturn設...

mysql開發經驗 MySql開發經驗

1 wait timeout 預設288800秒 8小時 jdbc連線池maxwait或者maxldeltime這兩個引數要小於這個值,否則,當你的連線長時間沒和資料庫互動,伺服器早就把你的連線斷開了,而你的連線池還認為是有效連線,除非你設定testonborrow或者設定testonreturn設...