这是一种SE架构问题。以下是我们正在实施的系统的模型。
以上是我们使用ajax处理数据调用的方式。问题是如果调用在salesforce部分中花费太多时间来处理,则API管理器会抛出超时并且网站会收到响应,这是从API管理器抛出的超时错误。
我想实现的方法是将请求发送到服务器,然后API管理器会向我发送一个在salesforce部分处理的大事务的ID。当前端收到ID时,我将使用具有给定ID的单独Web服务轮询API管理器,以识别事务是否成功完成。我需要定期打电话,因为我不知道执行时间!
例如,在获取ID后,我会每隔5秒钟进行一次ajax调用,以了解交易是否结束。
这是解决我面临的问题的明智方法吗?由于我无法控制任何其他部分,我想知道我的方法是否更好。
答案 0 :(得分:1)
感觉足够明智。
在API管理器中实现某种工作队列。它存在几种即用型解决方案,可以很好地扩展(例如齿轮装置)。
向API管理器添加一个Web服务,可以获取工作队列中的作业状态
......然后你可以......
3。尝试删除模型中的一个系统(它包含许多可能的故障点)。客户端(Web应用程序)可以直接与API管理器通信吗?或者可以在Web服务器上实现工作队列,并通过wordpress中的ajax函数提供
4。添加websocket支持,它比轮询更棒!)