如何创建端点以下载PDF并与服务器发送的事件共享生成进度

问题描述

我有一个端点,允许用户下载PDF。由于PDF生成通常需要20秒钟以上的时间,因此我想在处理过程中将有关PDF生成进度的信息发送到前端。我从来没有使用过服务器发送的事件,但是我在Spring 4.3中做了一个简单的测试,并且工作正常。但是现在我不知道如何将其用于PDF下载。

当前,我正在响应中编写PDF("application/pdf"),但是在这种情况下,我将无法返回对象SseEmitter

您是否有建议将进度流发送到前端并且仍然能够提供PDF?我应该使用websockets代替SSE吗?也许有两个不同的端点?任何建议都欢迎。 :)

解决方法

我的解决方案使用了两个不同的端点:

第一个端点:提供进度流并将PDF内容持久存储在数据库中 第二个终点:下载PDF

如果我还没有将这个PDF内容持久保存在数据库中,我认为我不会对这种解决方案感到满意,但是确实如此,所以很好。 :)