我有一个提供大量文件下载的休息服务。我不希望用户等到文件下载完成,而是用户进行休息呼叫,然后我向用户返回一条消息,说明"文件下载在/ tmp /进行中"。
我有一个使用@async方法实现文件下载的服务。文件下载完成后,我想调用其他代码(在kafka上发布成功消息)。我无法挂钩这部分代码。在@async方法完成执行后,我在哪里放置运行的代码?
答案 0 :(得分:0)
假设这是春天? 您的方法可以返回返回类型的CompletableFuture包装器。请查看描述此内容的Spring docs。
然后,您可以使用then
的{{1}}前缀方法在结果可用时附加回调函数。有一些很好的例子here。
在您的情况下,它可能看起来像这样:
CompletableFuture