问题描述
我目前正在使用具有django后端(使用DRF)和React作为前端的Web应用程序。
我想创建一个可以导出多个PDF文件(每个4-5页)的API。当然,这会花费很长时间,并且在正常的HTTP请求/响应周期中会超时。
将其整合到后端的最佳方法/架构是什么?
PS:我已经有celery在处理其他几种api(耗时的后台任务),但在这种情况下,我希望来自celery的响应(即pdf文件)到达前端。我不确定该怎么做。
对于这种情况最理想的任何其他方法都是可以理解的。预先感谢!
解决方法
如果您想将PDF显示给用户,而不是以后再发送电子邮件,我认为最好的解决方案是告诉用户您将在PDF准备就绪时通知他们,并在后台生成PDF,然后通知用户的React前面带有推送通知(或诸如SignalR之类的网络袜子),并执行API以使用户能够下载PDF或只是做电子邮件之类
原因: 您不能长时间保留请求(我的意思是您可以,但是不合适,没人愿意等待很长时间观看白屏,对吗?),因此必须在后台完成