gpt4 book ai didi

python - pymysql 仅在实例化新连接后检测外部所做的更改

转载 作者:行者123 更新时间:2023-11-30 23:10:01 26 4
gpt4 key购买 nike

我正在尝试运行一个 Python 脚本,该脚本使连接永久打开,并响应在脚本之外所做的更改。

例如:

  1. 数据脚本:接受表单提交并将表单数据提交到数据库
  2. Worker 脚本:监控数据库中的新表单帖子并采取相应措施

worker脚本中的相关代码为:

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)

有没有办法让我使用打开的连接并让它轮询最新数据?

最佳答案

在脚本开头打开 1 个连接。连接操作并不便宜。

记住获取的最后一行的 ID。

在每次迭代中选择 ID 大于最后一次看到的行。

关于python - pymysql 仅在实例化新连接后检测外部所做的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20242314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com