0
アップデートのmysqlの一部が値を更新しないことがあり、ランダムに表示されるという問題があります。原因を見つけることができません。キー値 "TRANSFER"を持つMYSQLエントリを受け取り、同じキー値を "EXECUTED"に設定します。時々私はうまく働く20のプロセスを持っています、時々私は10のプロセスがあり、半分は更新されません。基本的MySQLのアップデートが更新されない
try:
db = MySQLdb.connect(
host='localhost',
user='root',
passwd='pw',
db='db',
)
db.autocommit(True)
except Exception as e:
sys.exit("Can't connect to db")
cur = db.cursor()
setstatus = "EXECUTED"
for fn in os.listdir('.'):
if os.path.isfile(fn):
UUID = fn.replace(".ac", "")
try:
cur.execute("""
UPDATE olorequest
SET status = %s
WHERE UUID = %s
""", (setstatus, UUID))
except Exception as e:
raise IOError(e)
ftp.storlines('STOR ' + fn, open(fn, 'r+'))
try:
shutil.move(fn, executed_ac_files)
except Exception as e:
shutil.move(fn, error_files)
raise IOError(e)
time.sleep(5)
のは、ラインが(離れて、技術/接続の問題から)更新されない理由は2つの理由基本的に存在しているとしましょう: - 'WHERE' predicatが を満たしていなかった - 論理的な誤解は、あなたのプログラム にあります...これは実際には、同じです:) – butterFlyNick
私はそれが実際にそれを修正したかもしれないと思います。 'UUID = fn.replace(" .ac "、" ")の後に' time.sleep(5) 'を追加しました。もし私がファイルを更新しても、ファイルはサーバ上でまだ名前が変更されていて、UUIDは' None' dB。私はいくつかのテストを実行しています、これまでのところありがとう:) –
あなたは大歓迎です:) – butterFlyNick