0
我的控制器代碼(以python實現)首先更新DB,然後發送201狀態代碼,指示它已在數據庫中更新。 問題是等待從數據庫獲取此更新的人不會立即工作,因爲數據庫更新需要一些時間(約0.5秒)才能生效。控制/推遲發送201狀態
有沒有一種方法可以控制/推遲發送201? 任何示例代碼/鏈接將不勝感激。
我的控制器代碼(以python實現)首先更新DB,然後發送201狀態代碼,指示它已在數據庫中更新。 問題是等待從數據庫獲取此更新的人不會立即工作,因爲數據庫更新需要一些時間(約0.5秒)才能生效。控制/推遲發送201狀態
有沒有一種方法可以控制/推遲發送201? 任何示例代碼/鏈接將不勝感激。
我可以建議2個選項,這兩個選項都需要您的代碼「等待」,直到確定數據現在可以檢索。第一個選項是使用time.sleep()
。如果你確定你知道更新到數據庫需要多長時間,你可以硬編碼靜態等待時間
time.sleep(0.5) # 1/2 a second pause
缺點這種方法的是,等待時間是硬編碼的,所以如果更新需要大量的時間越長指定的等待時間,您再次遇到同樣的問題。
第二種方法是在while循環中寫入數據庫之後立即查詢寫入的值,並且只有當您成功時才返回,讀回您更新的值。
# Pseudocode
db.update(data)
while True:
rdata = db.retrieve(id_for_data)
if rdata.field == data.field:
break
return response, http_code
缺點這種方法的是,你可能等待很長一段時間(或永遠)如果數據庫的更新需要一段時間(甚至失敗)
我們應該假設你正在構建一個RESTful HTTP服務器使用Twisted Web?我可以從你的問題的標籤中推斷出,但在問題本身中陳述這可能會更好。標籤是人們找到你的問題的方式:你不應該根據他們來解釋問題本身。 –