我使用Raspberry Pi 3和Raspbian 8(Jessie)使用单元连接将数据发布到服务器,这可能是不可靠的。我有一个棘手的错误,发送数据的线程挂起但没有超时,所以数据发布完全暂停很长一段时间没有记录等。
我通过人为地减慢Pi的连接(使用tc / netem来增加约20秒的延迟)来复制这一点。执行此操作时,请求将挂起超过超时时间。我假设(但不确定)这是因为很少的数据包通过慢速连接完成。如果发生这种情况,有没有办法引发错误?或者我的假设是错的?
请求代码:
result = requests.post(target_url, json=data_dict, timeout=5)
由于
答案 0 :(得分:0)
根据docs:
timeout
不是整个响应下载的时间限制;相反,如果服务器没有发出超时秒响应(更确切地说,如果在超时秒内没有在底层套接字上收到任何字节),则会引发异常。
换句话说,您所看到的行为是预期的 - 只要服务器在超时到期之前开始发出响应,就不会触发超时。