我有一小部分查询mySQL的python代码,
while True:
print "running SQL query"
cursor.execute('select * from sites where stage="NEW"')
results = cursor.fetchall() #Fetch results
for row in results:
print "change detected" #simplified line for testing
print "sleeping"
sleep(10)
当没有记录匹配输出时:
running SQL query
sleeping
running SQL query
sleeping
手动创建匹配的SQL记录(允许循环重复的时间),输出仍为:
running SQL query
sleeping
running SQL query
sleeping
停止脚本并重新启动,测试输出符合预期:
running SQL query
change detected
sleeping
所以结果正在被缓存?或者查询没有被重新运行?
我如何处理这个问题,请记住查询是经常运行的(我确实想知道每次关闭数据库连接并重新打开,但这似乎过多了?)
答案 0 :(得分:0)
如果您查看commit()
的{{3}},则可以提示您的代码无效的原因。
在database.commit()
之后尝试使用sleep(10)
,看看它是否有效。