我正在使用 Python 中的请求库进行 POST 调用。我的 POST 调用大约需要 5 分钟才能完成。它将在 S3 存储桶中创建一个文件。之后,我想下载这个文件。但是,我需要创建一个额外的逻辑来等待我的 POST 完成,然后再执行代码的下一行以下载文件。
有什么建议么?
是否可以为此使用子流程库?如果是这样,语法将如何?
代码:
import requets
r = requests.post(url)
# wait for the post call to finish
download_file(file_name)
原文由 GreenTeaTech 发布,翻译遵循 CC BY-SA 4.0 许可协议
问题说 POST 请求需要 5 分钟返回,但也许这不太正确?也许 POST 请求立即返回,但服务器继续为 S3 存储桶创建文件需要 5 分钟?在那种情况下,延迟的需要是有道理的。完全需要单独下载的事实倾向于支持这种解释(请求的信息不会从请求本身返回)。
如果下载失败抛出异常,试试这个:
或者,如果 download_file 在失败时简单地返回 False:
由于我对这个问题的解释是推测性的,如果不是重点,我会删除这个答案。