Mam skrypt, który czeka, aż jakiś wiersz w db jest aktualizowana:Pythona MySQLdb nie zaczyna aktualizacja wiersz
con = MySQLdb.connect(server, user, pwd, db)
Gdy skrypt rozpoczyna wartość wiersza jest "running"
i czeka na wartość stać "finished"
while(True):
sql = '''select value from table where some_condition'''
cur = self.getCursor()
cur.execute(sql)
r = cur.fetchone()
cur.close()
res = r['value']
if res == 'finished':
break
print res
time.sleep(5)
Po uruchomieniu tego skryptu zawiesza się na zawsze. Mimo że widzę, że wartość wiersza zmieniła się na "finished"
, gdy zapytam o tabelę, wydruk skryptu nadal jest "running"
.
Czy jest jakieś ustawienie, którego nie ustawiłem?
EDYCJA: Skrypt Pythona odpytuje tylko tabelę. Aktualizacja do tabeli jest przeprowadzana przez webcat tomcat, używając JDBC, który jest ustawiony na autocommit.
To jest InnoDB. Ale skrypt Pythona odpytuje tylko tabelę. Aktualizacja do tabeli jest przeprowadzana przez webcat tomcat, używając JDBC, który * jest * ustawiony na autocommit. – olamundo
Dodałem więcej szczegółów, aby wyjaśnić zachowanie –