所以我在我的网站上使用AWS作为云。他的主要目的是成为一个存储单元(s3),在我有一个大文件(5MB或7mb)通过Heroku的30秒时限并发送H12错误之前,一切都很好。
s3.Object(BUCKET, file_full_name).put(Body=file_to_put)问题从那里开始。在这里,我正在将文件写入云端。而且,由于要花很长时间来编写它,所以站点继续尝试加载文件,但从未加载过。file_to_put是字节类型。我如何修复它,以便我可以上传更大的文件到云端?
注意:我需要读取文件,但首先我需要修复这个问题
后端框架-烧瓶
发布于 2020-05-15 01:39:56
这就是worker进程类型和任务队列出现的地方(这样您就可以将Celery+Redis与烧瓶或类似的东西一起使用)。
基本上,您在一个任务队列(比如Redis)中排队编写文件,然后您的web进程立即将200 OK返回给网站访问者。同时,worker进程从队列中选择任务并开始执行耗时任务(将文件写入S3)。
在前端,您将不得不要求访问者“过一段时间后再来”,或者显示等待“旋转器”,或者向访问者表示文件不可用。一旦文件被写入,您可以发送一个信号来刷新页面,或者您可以使用网页上的JavaScript来检查文件是否准备好--每秒钟说一次,或者只要求访问者在一分钟后刷新页面。
我知道这听起来很复杂,但事情就是这样做的。您的web进程不应该等待长时间运行的任务。
https://stackoverflow.com/questions/61807283
复制相似问题