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