我正在创建一个网络服务。客户端通过 POST 以 XML 格式将信息发送到 RETURN URL。客户端应该只收到“成功”或“失败”,这只是一个状态指示器,用于确认返回 URL 确实收到了 POST 消息。
之后,RETURN URL(主机)将处理客户端发送的 XML 数据。
我遇到的问题是处理可能需要几分钟。我想立即发送状态消息,然后继续处理 XML 数据。
关于如何解决这个问题的任何建议?
我正在创建一个网络服务。客户端通过 POST 以 XML 格式将信息发送到 RETURN URL。客户端应该只收到“成功”或“失败”,这只是一个状态指示器,用于确认返回 URL 确实收到了 POST 消息。
之后,RETURN URL(主机)将处理客户端发送的 XML 数据。
我遇到的问题是处理可能需要几分钟。我想立即发送状态消息,然后继续处理 XML 数据。
关于如何解决这个问题的任何建议?
您应该经常轮询服务器(您决定),直到您获得“完成”响应。
将您的 Web 服务设置为异步返回。如果您在 .Net 中执行此操作,则您在 Web 服务功能上放置了一个参数
如果您在 Java 中创建它,这里有一些如何从 Oracle 进行的信息。我对Java不太熟悉,所以我不确定它是如何完成的,但这里有一个文档。
可能有几种方法可以做到这一点。想到的第一个是将 XML 存储在数据库记录中并将“成功”状态返回给客户端。
设置一个进程每隔几秒或几分钟运行一次,检查数据库中的新记录并处理它们,直到没有更多记录为止。
我曾经以这种方式在 ASP 中实现了一个群发短信服务。传入的 SMS 消息(如传入的 XML 文件)存储在数据库中。每隔一两分钟就会运行一个进程,以查找新消息并执行消息告诉他们执行的任何操作。如果该消息是向组发送新消息的命令,则将这些传出消息放入另一个数据库,并定期运行另一个发送这些消息的进程。它将发送消息,直到达到运营商规定的每分钟可以发送多少条消息的限制,然后它将终止。
这一切都是在经典的 ASP 中完成的,并在服务器上运行了第三方调度程序。工作得很好。