所以我在執行緒(5)中運行一個特定的代碼塊,并且在執行緒執行的代碼中資料被保存到資料庫中。例如
鏈接 = AccountLinkModel.objects.create(account=account)
如果我列印“鏈接”物件的值和 AccountLinkModel 模型中的任何欄位,它們列印成功,這意味著資料已創建,但最終在資料庫中找不到一些記錄,只有少數記錄在資料庫中.
關于可能導致這種情況的任何建議?
uj5u.com熱心網友回復:
也許嘗試僅使用 1 個執行緒運行它以查看問題是否仍然存在,如果沒有,您的代碼中可能存在競爭條件,您沒有正確鎖定執行緒的共享資源。
uj5u.com熱心網友回復:
如果我列印“鏈接”物件的值和 AccountLinkModel 模型中的任何欄位,它們列印成功,這意味著資料已創建。
如果create函式被一個事務塊包裹,比如
with transaction.atomic:
link = AccountLinkModel.objects.create(account=account)
...other db stuff
那么在呼叫 create funktion 之后,該物件就不會在資料庫中持久化。如果在 create 呼叫之后列印,那么這只是 ram 中的 python 屬性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/404825.html
標籤:
上一篇:如何查詢顯示不同月份的資料?
下一篇:沒有正確計算周數
