0
我有一個小型web服務器在POST請求上執行一些操作。它讀取一個數據文件,進行一些檢查,然後重新保存文件,添加POST中的一些信息。並行訪問Python中的數據文件
我遇到的問題是,如果兩個客戶端幾乎在同一時間執行POST請求,兩者都將讀取同一個文件,然後一個會寫入包含新信息的文件,然後另一個客戶端將寫入文件包含其新信息,但沒有來自其他客戶端的信息,因爲該部分在讀取時不在文件中。
f = open("foo.txt", "r+")
tests_data = yaml.safe_load(f)
post_data = json.loads(web.data())
#Some checks
f.write(json.dumps(tests_data))
f.close()
我想腳本「等待」,不給了一個錯誤,在該文件已被相同的代碼的另一進程打開「打開」行,然後讀取文件時其他進程完成並關閉了文件。
或其他如果存在其他解決方案。
也許有某種排隊系統,其中您的程序寫入當前訪問某些輔助數據文件的人員隊列,然後在分配的唯一ID位於文件前面時執行。讓程序清理它的實例ID。或者你想要這樣做。 – jh44tx