我想问一下使用Spring运行长进程的最佳方法是什么.我有一个webapp,当客户端发出请求时,它运行一个Spring控制器.该Controller将从请求中获取一些参数,然后运行查询并从数据库中获取记录.
来自DB的记录很高,我需要做一个可能需要很长时间的比较逻辑,所以我需要单独运行它.
执行此过程时,应将最终结果写入excel文件并邮寄.
最佳答案
您可以使用注释@Async立即返回.
Fisrt,写一个@Service类来处理你的DB和Excel工作.
@Service
public class AccountService {
@Async
public void executeTask(){
// DB and Excel job
}
}
然后,在控制器方法中触发任务
@Controller
public class taskController{
@RequestMapping(value = "as")
@ResponseBody
public ResultInfo async() throws Exception{
accountService.executeTask();
return new ResultInfo(0,"success",null);
}
}
最后,将其添加到application-context.xml(spring配置文件)
希望这会帮助你.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。