0

我正在创建一个网络服务。客户端通过 POST 以 XML 格式将信息发送到 RETURN URL。客户端应该只收到“成功”或“失败”,这只是一个状态指示器,用于确认返回 URL 确实收到了 POST 消息。

之后,RETURN URL(主机)将处理客户端发送的 XML 数据。

我遇到的问题是处理可能需要几分钟。我想立即发送状态消息,然后继续处理 XML 数据。

关于如何解决这个问题的任何建议?

4

3 回答 3

0

您应该经常轮询服务器(您决定),直到您获得“完成”响应。

于 2012-11-30T20:55:25.507 回答
0

将您的 Web 服务设置为异步返回。如果您在 .Net 中执行此操作,则您在 Web 服务功能上放置了一个参数

MSDN 异步 Web 服务

如果您在 Java 中创建它,这里有一些如何从 Oracle 进行的信息。我对Java不太熟悉,所以我不确定它是如何完成的,但这里有一个文档。

Oracle 异步 Web 服务

于 2012-12-01T14:32:10.450 回答
0

可能有几种方法可以做到这一点。想到的第一个是将 XML 存储在数据库记录中并将“成功”状态返回给客户端。

设置一个进程每隔几秒或几分钟运行一次,检查数据库中的新记录并处理它们,直到没有更多记录为止。

我曾经以这种方式在 ASP 中实现了一个群发短信服务。传入的 SMS 消息(如传入的 XML 文件)存储在数据库中。每隔一两分钟就会运行一个进程,以查找新消息并执行消息告诉他们执行的任何操作。如果该消息是向组发送新消息的命令,则将这些传出消息放入另一个数据库,并定期运行另一个发送这些消息的进程。它将发送消息,直到达到运营商规定的每分钟可以发送多少条消息的限制,然后它将终止。

这一切都是在经典的 ASP 中完成的,并在服务器上运行了第三方调度程序。工作得很好。

于 2012-12-01T21:11:55.187 回答