使用python2.7和MySQLdb,我希望有一个无限线程,可以多次执行SELECT查询。当我修改表中的数据以获得或多或少的结果时,似乎只考虑了第一个选择,而这些结果永远不会改变。你知道吗
我的方法是:
def getUrlsToCrawl(self):
dateNowUtc = datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S")
cursor = self.db.cursor()
cursor.execute('SELECT id, url, nbErrors FROM mytable WHERE nbErrors < %s AND domain = %s and nextCrawl < %s', (self.MAX_RETRY, self.domain, dateNowUtc))
print cursor._last_executed
urls = cursor.fetchall()
print urls
cursor.close()
return urls
到数据库的连接是在初始化时建立的,在我终止线程时关闭。你知道吗
这是日志
SELECT id, url, nbErrors FROM mytable WHERE nbErrors < 10 AND domain = 'foo.com' and nextCrawl < '2017-01-04T16:33:52'
((6L, u'http://www.foo.com/foo.php', 4L),)
SELECT id, url, nbErrors FROM mytable WHERE nbErrors < 10 AND domain = 'foo.com' and nextCrawl < '2017-01-04T16:33:59'
((6L, u'http://www.foo.com/foo.php', 4L),)
SELECT id, url, nbErrors FROM mytable WHERE nbErrors < 10 AND domain = 'foo.com' and nextCrawl < '2017-01-04T16:34:06'
((6L, u''http://www.foo.com/foo.php'', 4L),)
SELECT id, url, nbErrors FROM mytable WHERE nbErrors < 10 AND domain = 'foo.com' and nextCrawl < '2017-01-04T16:34:13'
((6L, u''http://www.foo.com/foo.php'', 4L),)
如果我将此条目的nbErrors从4更改为12,结果将保持不变,但查询不应得到此结果。你知道吗
我试图在初始化时打开光标,但没有关闭它。有什么建议吗?你知道吗
我解决了我的问题self.db.commit提交()之后游标.fetchall()
谢谢!你知道吗
相关问题 更多 >
编程相关推荐