我正在尝试运行一个Python脚本,该脚本会永久打开一个连接,并响应脚本之外的更改。
例如:
工作人员脚本中的相关代码是:
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()
现在我不明白为什么这不是新的表单...如果我在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)
我有没有办法使用开放式连接并让它轮询最新数据?
答案 0 :(得分:0)
在脚本开头打开1个连接。连接起来并不便宜。
记住提取的最后一行的ID。
在每次迭代中,选择ID大于上次看到的行。