如何在Python POST请求耗时超X秒时显示等待提示?
实现仅当请求超时X秒时显示等待提示
可以用线程定时器来实现这个需求——先启动一个定时器,设定X秒后打印提示;如果请求在X秒内完成,就立刻取消这个定时器,这样快请求就不会弹出多余提示。
以下是修改后的代码示例(以等待阈值2秒为例):
import requests import threading def show_wait_prompt(): print("Please wait", flush=True) # flush=True确保立刻输出,避免缓冲 try: # 设置等待阈值,比如2秒 wait_threshold = 2 # 启动定时器,X秒后执行提示函数 timer = threading.Timer(wait_threshold, show_wait_prompt) timer.start() # 发送POST请求 r = requests.post(url="http://localhost/test.php") r_data = r.json() # 请求完成,取消定时器(如果还没触发的话) timer.cancel() except Exception as e: # 发生异常也要取消定时器,避免后续弹出提示 timer.cancel() # 这里可以添加异常处理逻辑,比如打印错误 print(f"请求出错: {e}")
关键逻辑说明
threading.Timer会在单独线程中等待指定时间,不会阻塞主线程的请求操作- 请求完成后调用
timer.cancel(),如果定时器还没到时间,就不会执行提示函数 flush=True是为了确保提示信息能立刻显示在控制台,避免因输出缓冲导致延迟- 异常分支里也要取消定时器,防止请求出错后定时器仍触发提示
你可以根据需求调整wait_threshold的值,比如改成1秒或3秒,适配不同的场景。
内容的提问来源于stack exchange,提问作者MarcusDeroy
相关产品推荐
相关产品推荐

