【问题标题】:Asynchronus Web service using WS Addressing使用 WS 寻址的异步 Web 服务
【发布时间】:2010-09-21 22:36:56
【问题描述】:

我需要实现一个启用 WCF WS 寻址的 Web 服务,该服务基于方法的参数执行长时间运行的进程。

客户端不需要等待结果,因为它会直接传递到数据库表中。但是,Web 方法确实需要返回一个“跟踪 ID”号(实际上是一个 GUID),以便客户端可以使用它来从数据库中检索结果。

  1. Web 方法只接受接收到的参数,创建一个新的 GUID 并将所有这些信息存储在数据库表(或 MSMQ 队列)或类似的东西中。然后它将跟踪 GUID 返回给客户端。外部服务(可能是 Windows 服务)会不断轮询“收件箱”,为每个请求执行长时间运行的过程,并生成结果并响应回调服务

提前致谢

塞卡

【问题讨论】:

    标签: wcf ws-addressing


    【解决方案1】:

    你的问题是什么?但是根据您的描述,网络服务本身并不是异步的。在 java webapp 中,我会像这样实现一个简单的 webapp:

    • 存储数据、启动线程并返回 guid 的 Web 服务
    • 线程执行长期任务并为其 guid 存储结果
    • 一个 web 服务返回一个 guid 的结果,如果还没有完成的话。

    最佳实践是为长期任务使用自己的守护线程组,每个线程都以 guid 命名。覆盖组的 uncaughtException() 方法以将异常存储为任何错误的 guid 的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-29
      • 2017-04-07
      • 1970-01-01
      • 2012-05-07
      • 2012-04-15
      • 2010-10-16
      • 2023-03-22
      • 1970-01-01
      相关资源
      最近更新 更多