Spring 如何处理长时间的处理请求

Spring 如何处理长时间的处理请求,spring,amazon-web-services,api,rest,Spring,Amazon Web Services,Api,Rest,我在AWS Elastic Beanstalk上部署了一个spring boot rest API,我正试图通过它上传图片 这就是我所做的:通过浏览器输入的文件上传zip文件,在服务器上获取zip文件,浏览所有文件,然后在AWS S3上上传每个文件 它工作正常,但我遇到了一个问题:当我尝试上传大量图片时,我遇到了一个HTTP错误(504网关超时)。我发现这是因为服务器需要花费太多的时间来响应,我正在尝试为请求设置更高的超时(尚未找到)。 但与此同时,我在问自己,这是否是最好的解决方案 在收到zi

我在AWS Elastic Beanstalk上部署了一个spring boot rest API,我正试图通过它上传图片

这就是我所做的:通过浏览器输入的文件上传zip文件,在服务器上获取zip文件,浏览所有文件,然后在AWS S3上上传每个文件

它工作正常,但我遇到了一个问题:当我尝试上传大量图片时,我遇到了一个HTTP错误(504网关超时)。我发现这是因为服务器需要花费太多的时间来响应,我正在尝试为请求设置更高的超时(尚未找到)。 但与此同时,我在问自己,这是否是最好的解决方案

在收到zip文件后直接结束请求,上传到S3,然后通知用户上传已经完成,不是更好吗?有没有办法做到这一点?这方面有好的做法吗?(需要花费大量时间处理的操作)

我知道如何异步执行该过程,但我真的想知道如何在该过程完成后通知用户

在收到zip文件后直接结束请求,上传到S3,然后通知用户上传已经完成,不是更好吗

是的,在zip文件中对上传的图像进行异步处理会更好

有没有办法做到这一点?这方面有好的做法吗?(需要花费大量时间处理的操作)

是的,有更好的办法。要将所有内容保持在EB内,您可以查看。worker环境是处理图像的理想环境

在此解决方案中,基于web的环境将存储在S3中上载的图像,并将其名称和其他标识信息一起提交到SQS队列中。队列是工作环境的入口点

您的工作人员将独立于web环境处理队列中的图像。同时,web环境必须检查结果,并在处理完图像后通知用户

EB还支持。因此,您可以在web和worker环境之间建立链接,以便于集成

在收到zip文件后直接结束请求,上传到S3,然后通知用户上传已经完成,不是更好吗

是的,在zip文件中对上传的图像进行异步处理会更好

有没有办法做到这一点?这方面有好的做法吗?(需要花费大量时间处理的操作)

是的,有更好的办法。要将所有内容保持在EB内,您可以查看。worker环境是处理图像的理想环境

在此解决方案中,基于web的环境将存储在S3中上载的图像,并将其名称和其他标识信息一起提交到SQS队列中。队列是工作环境的入口点

您的工作人员将独立于web环境处理队列中的图像。同时,web环境必须检查结果,并在处理完图像后通知用户


EB还支持。因此,您可以在web和worker环境之间建立链接,以便于集成。

谢谢!我是aws的新手,我将对工人环境和SQS队列进行一些研究。“网络环境必须检查结果,并在处理完图像后通知用户”->如何通知用户?@Roronoa_D.\u Law这是特定于应用程序的,有很多方法可以做到这一点。在最简单的情况下,提交zip文件后,您的网站将使用javascript共享结果状态。如果这是一个很长的处理过程,那么工作人员可以向最终用户发送电子邮件,告知图像已准备就绪。所以这真的取决于你的用例。谢谢!我是aws的新手,我将对工人环境和SQS队列进行一些研究。“网络环境必须检查结果,并在处理完图像后通知用户”->如何通知用户?@Roronoa_D.\u Law这是特定于应用程序的,有很多方法可以做到这一点。在最简单的情况下,提交zip文件后,您的网站将使用javascript共享结果状态。如果这是一个很长的处理过程,那么工作人员可以向最终用户发送电子邮件,告知图像已准备就绪。所以这实际上取决于您的用例。