有一个 post 方法putMessage(Some object)将数据作为输入,对其进行处理并向用户返回“文件上传成功”消息。
在方法处理完数据之后,在向用户返回“文件上传成功”之前,我仍然需要运行一个单独的方法void2()来完成大约 2-3 小时的工作。
如何在putMessage(Some object)内部调用此方法,使其执行单独开始,客户端不等待消息 2-3 小时。听说可以通过 Observer 来实现。有这个工具Spring吗?
那些。
String putMessage(Some object){
// 1. обработка данных object
// 2. вызов void2() * - вынести в отдельный поток
// 3. return "загрузка файла прошла успешно";
}
首先,您需要使基础架构能够运行异步方法。
需要在 java 配置中添加注释
@EnableAsync:或在 xml 中:
然后,使用注释标记您要在单独的线程中运行的方法
@Async:这是最简单的配置。此外,您还可以:
putMessage),并等待执行完成并返回工作结果好吧,有一个完整的分步示例,并带有俄语解释。