问题描述
我有一个端点,允许用户下载PDF。由于PDF生成通常需要20秒钟以上的时间,因此我想在处理过程中将有关PDF生成进度的信息发送到前端。我从来没有使用过服务器发送的事件,但是我在Spring 4.3中做了一个简单的测试,并且工作正常。但是现在我不知道如何将其用于PDF下载。
当前,我正在响应中编写PDF("application/pdf"
),但是在这种情况下,我将无法返回对象SseEmitter
。
您是否有建议将进度流发送到前端并且仍然能够提供PDF?我应该使用websockets代替SSE吗?也许有两个不同的端点?任何建议都欢迎。 :)
解决方法
我的解决方案使用了两个不同的端点:
第一个端点:提供进度流并将PDF内容持久存储在数据库中 第二个终点:下载PDF
如果我还没有将这个PDF内容持久保存在数据库中,我认为我不会对这种解决方案感到满意,但是确实如此,所以很好。 :)