【发布时间】:2015-04-27 20:34:28
【问题描述】:
我有一个相当大的 PHP Web 应用程序,它通过他们的 API 从许多其他供应商那里获取其产品,通常响应一个大的 XML 来解析。目前有 20 家供应商,但这将进一步增加。
我们当前的设置使用 multi curl 来发出请求,这需要大约 30-40 秒才能完成,而且时间太长。该脚本在后台运行,而前端轮询数据库以查找结果,然后在它们进入时显示它们。
为了改进这个过程,我们考虑使用作业服务器在后台运行,每个供应商请求都是一个单独的作业。我们已经看到 beantalkd 和 Gearman 被提及。
那么我们是否在寻找正确的方向,例如,工作服务器是正确的方式吗?我们正在考虑尽快进行一些促销活动,以便我们可以让 200 多个用户同时搜索 30 个供应商,因此如果我们必须进行负载平衡,正确的选择需要很好地扩展。
任何建议都非常棒。
【问题讨论】:
-
后台作业,用于处理多个源,以及大量缓存以避免多次执行相同的工作(至少在基础数据发生变化之前)。然后前端将轮询缓存以获取产品详细信息。
标签: php performance curl gearman beanstalkd