Python 控制/延迟发送201状态
我的控制器代码(用python实现)首先更新数据库,然后发送201个状态代码,指示它在数据库中完成了更新。 问题是,等待从DB获取此更新的人将无法立即工作,因为DB更新需要一些时间(大约0.5秒)才能生效 有什么方法可以控制/延迟发送201吗?Python 控制/延迟发送201状态,python,rest,http,twisted,Python,Rest,Http,Twisted,我的控制器代码(用python实现)首先更新数据库,然后发送201个状态代码,指示它在数据库中完成了更新。 问题是,等待从DB获取此更新的人将无法立即工作,因为DB更新需要一些时间(大约0.5秒)才能生效 有什么方法可以控制/延迟发送201吗? 任何示例代码/链接都将不胜感激。我可以建议两个选项,这两个选项都要求您的代码“等待”,直到确定数据现在可以检索为止 第一个选项是使用time.sleep()。如果确定知道数据库更新需要多长时间,可以硬编码静态等待时间 time.sleep(0.5) #
任何示例代码/链接都将不胜感激。我可以建议两个选项,这两个选项都要求您的代码“等待”,直到确定数据现在可以检索为止 第一个选项是使用
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
这种方法的缺点是,如果数据库更新需要一段时间(甚至失败),您可能会等待很长时间(或永远等待)我们是否应该假设您正在使用Twisted Web构建一个RESTful HTTP服务器?我可以从你问题上的标签推断,但最好在问题本身中说明这一点。标签是人们找到问题的方式:你不应该让问题本身的解释依赖于标签。