我試圖運行一個Python腳本,它將永久打開連接,並響應腳本以外的更改。pymysql只檢測實例化新連接後進行的外部更改
因此,例如:
- 數據腳本接受表單提交和表單數據提交到數據庫
- 工人腳本:監視新形式的職位數據庫,並採取了相應的行動
工作腳本中的相關代碼是:
import pymysql
conn = pymysql.connect(host='127.0.0.1', port=3306, user='dbuser', passwd='dbpass', db='my_db')
def processForms(Formdat):
c = conn.cursor(pymysql.cursors.DictCursor)
myform.sendEmail(c)
conn.commit()
c.close()
def doForms():
while True:
... get data and store in 'myforms' ...
futures = [executor.submit(processForms, myform) for myform in myforms]
time.sleep(30)
doForms()
否w我不明白爲什麼這不是拾取新的形式......如果我在doForms()的每次迭代中創建一個新的連接,新的形式被拾取,但我不想創建和銷燬連接每時每刻。
例如,這種修改作品:
conn = None
def doForms():
while True:
global conn
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='mw_py')
... get data and store in 'myforms' ...
futures = [executor.submit(processForms, myform) for myform in myforms]
conn.close()
time.sleep(30)
有沒有辦法對我來說,使用開放的連接,並將它輪詢的最新數據?
是否有具體原因使用pymysql而不是mysql.connector,這是官方的MySQL Python接口? – peroksid
@peroksid我無法使用Python3與mysql3連接。 –
我正在使用mysql-connector-python == 1.0.12 – peroksid