请求数据设计模式

时间:2014-12-01 20:58:15

标签: php design-patterns request

首先,我对这个问题标题不确定,所以请纠正我,如果不是,谢谢。

关于:

我有两个基于PHP的项目:第一个通过curl连接到第二个(API)的项目(CLIENT)。在API项目中完成了一些在CLIENT发送数据上执行的计算。

问题:

如果API项目因任何问题而导致停机,或者只是放慢速度,CLIENT必须等到API返回结果,因此它也会减慢速度。项目正在密集开发中,因此计算也会增加,因此也会延迟。

问题:

如何避免提到的问题,完美的API必须不影响CLIENT的性能。也许有任何设计模式或什么? 我已经阅读了关于ASYNCH PHP,缓存模式但仍未找到解决方案。如果有任何解决方案(模式),那么在实践中提供示例会很棒!

P.S。请求不会变慢,减慢计算速度。我同意首先应优化它们。 P.P.S.总请求超过每分钟60(> ~60 /分钟)。

1 个答案:

答案 0 :(得分:1)

有两种方法,既有效,又有不同的优点和缺点......

  1. 异步处理,意味着客户端不会等待每个单独的调用,直到它返回(其响应返回),但继续前进并依赖于回调或类似的机制来处理响应一旦进入例如,这通常是在使用javascript和ajax进行远程调用的Web客户端中完成的。这使得客户端更加流畅,但显然涉及更高的代码和UI复杂性。

  2. 基于队列的处理,意味着客户端根本不直接执行任何此类潜在阻塞请求,而只是在某些排队机制内创建作业。那些工作可以由一些调度程序逐个处理,调度程序也必须处理响应。如果涉及到针对负载峰值和API中断的扩展和稳健性,这是非常强大的,但实现成本要高得多。此外,总体任务必须接受根本不保证响应时间,通常响应将比第一种方法花费更长时间,因此无法以交互方式显示。