0

我是 Java Spring Framework 的新手,我是 Rails 开发人员,我对 Java Spring 有要求,比如我需要做后台工作,但是在将响应发送给最终用户之后。它不应该等待作业完成。但是作业应该在每次操作完成时运行。

是一个网络服务应用程序。我们有 Service、Bo 和 DAO 层,我们正在记录在将响应发送给用户之前处理数据库中的用户数据时发生的任何异常,但现在我们希望在将响应发送给用户之后移动(异常处理)以提高性能。

我记得在 Rails 中我们有回调/过滤器,在操作执行后它会调用我们想要执行的方法。java Spring也有同样的功能吗?

谢谢,森希尔

4

1 回答 1

0

我假设用例类似于用户请求一个长时间运行的任务,并且您希望立即返回响应,然后在后台启动该任务。

Spring 可以帮助解决这个问题。看

http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/scheduling.html

具体看@Async注释。

关于客户端在异步处理(异常或其他情况)后得到响应,您可以这样做,但这是额外的工作。

通常,即时响应将包括某种 ID,客户端可以在一段时间后返回。(例如,当您针对 Splunk API 运行搜索时,它会为您提供一个作业 ID,您稍后会使用该作业 ID 回来检查结果)。如果这行得通,那就这样做。客户端必须轮询,但实现是最简单的。

如果没有,那么您必须有某种方式让客户端监听响应。这可能是客户端上的“回复”Web 服务端点(可能与原始请求一起作为自定义X-Reply-ToHTTP 标头传入),也可能是消息队列等。

于 2013-09-22T06:46:27.867 回答