代码之家  ›  专栏  ›  技术社区  ›  Daniel Rikowski

如何处理长时间运行的web服务操作?

soa
  •  11
  • Daniel Rikowski  · 技术社区  · 14 年前

    我必须创建一个javaee应用程序,将大型文档转换成不同的格式。每次转换需要10秒到2分钟。

    处理这些长时间运行的请求的最佳方法是什么?显然,在没有任何反馈给用户的情况下,这个过程需要花费大量的时间来运行。

    1. 客户机执行来自线程的请求,服务器在响应中发送文档,这可能需要几分钟的时间。在此之前,客户端会显示“请稍候”消息、进度微调器等( 这似乎很容易实现。
    2. 客户端发送“启动转换”命令。服务器返回某种 作业ID 客户端可以使用它经常轮询状态更新或最终文档( )
    3. 客户端发送“启动转换”命令。服务器以某种方式在完成时通知客户机( 在这里我甚至不知道怎么做

    还有其他方法吗?哪一个在性能、稳定性、容错性、用户友好性等方面是最好的。?

    谢谢你的回答。

    2 回复  |  直到 14 年前
        1
  •  5
  •   NullUserException Mark Roddy    14 年前

    由于这几乎都是在服务器端完成的,所以除了以某种方式轮询服务器以获取状态更新之外,客户机也无能为力。

    #1可以,但用户很快就会失去耐心。”“几分钟”对大多数人来说有点太长了。你需要 HTTP Streaming

    我会选择2号。

        2
  •  1
  •   Lisa    14 年前