python - Python Mysql连接器锁定其他用户
问题描述
我有一个长时间运行的 python 脚本,它使用 MySQL Connector Python 连接到 MySQL 数据库。这个过程发出一个 http 请求并将数据插入到一个表中。每 8 分钟一次。数据库连接和游标在进程启动时打开一次。最近,其他用户的查询运行时间非常长,或者只是被锁定在表之外。在引入此脚本之前,这不是问题。他们被锁定的表在脚本开始时的 select 语句中使用,但从未在以后每 8 分钟发生一次的 insert 或 update 语句中使用。
我应该在睡眠期间关闭光标吗?甚至是数据库连接?
编辑:在脚本开始时选择一组数据。这是需要处理的项目的主列表,大约。2000 行。
if __name__ == '__main__':
# DATABASE CONNECTION
db_args = {
'host': '',
'user': '',
'passwd': '',
'database': ''
}
dbconn = mysql.connector.connect(**db_args)
cursor = dbconn.cursor()
# get the data
cursor.execute("select * from tbl as a join tbl2 as b")
products = cursor.fetchall()
for product in products:
main(product, cursor)
time.sleep(440)
main 正在发出一个 http 请求,获取 JSON 数据,然后使用光标创建一对插入和/或更新语句。由于产品列表的大小和睡眠时间,该过程需要将近 10 天,因此该过程仍然在后台运行。
解决方案
推荐阅读
- azure - 为什么我在创建新的 Function App 时无法选择 Consumption Plan?
- python-3.x - 如何使用 python 的日志记录模块为每个处理程序和每个模块设置日志记录级别
- react-native - Expo BackgroundFetch 未执行
- javascript - 从 JSON 获取值到 HTML
- react-native - IOS React Native ImagePickerManager 为空
- php - 基于复选框的随机数间隔
- linux - 在cli中将具有相同行内容的列插入csv
- excel - 如何在从 filemaker 导出的“excel.xls”上插入图像?
- java - 如何使用 Mockito 模拟可分页对象?
- arrays - 如何在 Julia 中定义一个空的 DataFrame 数组?