我在網上judge.I工作正在使用python 2.7和MySQL(因爲我在後端部分工作)的情況下
如何管理數據庫連接尤其是在多線程
我的方法:
我創建了一個主線程,它從數據庫中提取提交(每次10個)並將它們放入一個隊列中。然後我有多個線程從隊列中提交提交,對其進行評估並將結果寫回數據庫。
現在我有一些疑惑(我知道他們是來自不同主題的疑惑,但其中的一些方法也很受讚賞)。
- 當前,當我開始線程時,我給他們自己的db連接,他們使用。這是一個很好的做法,給每個線程一個連接。在線程之間共享連接是否會產生問題。我該如何解決這個問題。
- 我的主線程使用單個連接,因爲它的唯一工作是從數據庫提交提交併將其放入隊列中(還將其狀態更新爲數據庫評估提交)。但有時我會在查詢時收到錯誤:
Lost connection to Mysql server
。即使我停止了該程序並重新開始,我也一直在收到它。我該怎麼辦?我也應該只爲主線程實現一個連接池嗎? - 還有一個數據庫連接保持永久?會話記憶等耗盡時如何處理?
你能提供一個鏈接,我可以在python中瞭解連接池? –
使用https://code.google.com/p/pysqlpool/ –