MySQL Connector/Python を使用して、2 秒ごとに値の変更をチェックし続けるループがあります。すべての肉を除いたループは次のとおりです (プリントはテスト目的でそこにあります:
try:
while True:
request = database.get_row(table="states", wherecol="state", whereval="request_from_interface")[0]
print(request.value)
time.sleep(2)
except KeyboardInterrupt:
pass
# back to normal operation
get_row は単純な選択クエリであり、namedtuple fetchall を返します (したがって、末尾の [0] は 1 行のみになります)。
問題は、初期値を取得すると、変更してもその値を返し続けることです。たとえば、開始が「0」の場合、管理者に移動して変更しても、新しいターミナルを開いて変更してコミットしても、「0」を出力し続けます。query_cache_size を 0 に設定しようとしましたが、まだうまくいきません。コミットの問題だと思っていましたが、そうでもありませんでした。変更して再接続すると、変更が表示されますが、プログラム中に変更されない理由がわかりません。何かご意見は?
編集:それが発生した場合に備えて、はい、カーソルを閉じて、呼び出しごとに新しいカーソルを取得しています。