防止客户端重复发送请求

时间:2014-11-19 05:14:16

标签: spring header

我有一个弹簧控制器和请求映射方法。

@RequestMapping(value = { "/doSomething.do" })
public ModelAndView emailToNonBelievers(){
    .....
    // do something which takes lot of time 

    // send response..
    return modelAndView;

}

这种方法需要很长时间,大约一个小时。(这适用于管理员,而不是用户。管理员不需要等待一个小时。只需点火即可忘记,没关系。这不是批量工作)

但是我发现客户端以3分钟的间隔重复发送请求(观察了6次,我停止了Spring服务)。

我猜是因为客户端没有得到服务器的任何响应。

如果我的猜测是正确的,服务器应该回应“您的请求被接受,只是闭嘴等待!!” 。

但是如何在Spring完成作业之前发送响应(200 ok)?

或者我错过了什么?

1 个答案:

答案 0 :(得分:1)

在这种情况下,建议使用异步任务处理。

Spring通过@Async注释为其提供开箱即用的支持。

请咨询my answer以获取类似查询的详细设置和{{ 3}} for docs。