如何处理耗时的ajax请求

时间:2015-05-19 13:05:11

标签: jquery ajax optimization architecture execution

这是一种SE架构问题。以下是我们正在实施的系统的模型。

mockup

以上是我们使用ajax处理数据调用的方式。问题是如果调用在salesforce部分中花费太多时间来处理,则API管理器会抛出超时并且网站会收到响应,这是从API管理器抛出的超时错误。

我想实现的方法是将请求发送到服务器,然后API管理器会向我发送一个在salesforce部分处理的大事务的ID。当前端收到ID时,我将使用具有给定ID的单独Web服务轮询API管理器,以识别事务是否成功完成。我需要定期打电话,因为我不知道执行时间!

例如,在获取ID后,我会每隔5秒钟进行一次ajax调用,以了解交易是否结束。

这是解决我面临的问题的明智方法吗?由于我无法控制任何其他部分,我想知道我的方法是否更好。

1 个答案:

答案 0 :(得分:1)

感觉足够明智。

  1. 在API管理器中实现某种工作队列。它存在几种即用型解决方案,可以很好地扩展(例如齿轮装置)。

  2. 向API管理器添加一个Web服务,可以获取工作队列中的作业状态

  3. ......然后你可以......

    3。尝试删除模型中的一个系统(它包含许多可能的故障点)。客户端(Web应用程序)可以直接与API管理器通信吗?或者可以在Web服务器上实现工作队列,并通过wordpress中的ajax函数提供

    4。添加websocket支持,它比轮询更棒!)