【问题标题】:Spring MVC and @AsyncSpring MVC 和 @Async
【发布时间】:2011-09-12 20:44:04
【问题描述】:

我有一个长时间运行的服务方法(执行业务逻辑),我希望客户端在向控制器提交请求后立即返回。我希望客户端定期轮询以查看 Service 方法是否已完成执行。 通过这两个链接阅读后: link1 link2 我相信@Async 是适合我情况的正确方法。我的问题是,Service 方法或 Controller 方法应该有 @Async 注释。 Controller 方法究竟如何引用 Future 对象,以便它可以调用其 get()isDone() 方法。

【问题讨论】:

    标签: model-view-controller spring asynchronous


    【解决方案1】:

    将@Async 放在调用“真实”服务方法的服务方法上。这样你就有两种调用方式,异步和非异步。

    让控制器方法将服务返回的 Future 存储在 Session 中,然后返回。然后,当客户端轮询控制器(在不同的 URL/方法上)时,控制器可以从会话中获取 Future 并在其上调用 isDone()。

    【讨论】:

    • 你如何正确处理Future不可序列化?
    猜你喜欢
    • 1970-01-01
    • 2011-11-11
    • 2023-03-10
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    相关资源
    最近更新 更多