Php 大规模数据处理,国外API';s、 和装载杆
我正在使用来自两个网站(Site1=>MyApp=>Site2)的两个独立且不同的API。从一个站点的API中拉入(获取)数据并将数据发送(发布)到另一个站点。有一个同步层,即“填充裂缝”(始终保持发送站点的数据与源镜像),还有一个不重复层(确保站点1的数据集在站点2上没有重复条目) 当用户通过一个简单的表单POST按钮诱导“同步”时。可能需要将来自站点1的数千条条目带入站点2。一种简单的低级方法是从站点1获取一个数据数组,循环它,在这个循环中,我有一个函数,可以获取数据并将其发送到站点2。在大规模工作时,这种循环肯定会失败或挂起几分钟,在页面退出时终止 这里有一个“低水平/低技术”的例子。在这个例子中,每个部分都非常耗时。在一个页面/一个脚本上发生的所有操作,用户可以停止这些操作。页面将是白色的,空白的,不太友好Php 大规模数据处理,国外API';s、 和装载杆,php,mysql,ajax,api,curl,Php,Mysql,Ajax,Api,Curl,我正在使用来自两个网站(Site1=>MyApp=>Site2)的两个独立且不同的API。从一个站点的API中拉入(获取)数据并将数据发送(发布)到另一个站点。有一个同步层,即“填充裂缝”(始终保持发送站点的数据与源镜像),还有一个不重复层(确保站点1的数据集在站点2上没有重复条目) 当用户通过一个简单的表单POST按钮诱导“同步”时。可能需要将来自站点1的数千条条目带入站点2。一种简单的低级方法是从站点1获取一个数据数组,循环它,在这个循环中,我有一个函数,可以获取数据并将其发送到站点2。在大
// Get all of the data from site one
$siteOneDataNuggets = get_siteOne_data();
//Loop through all of site one's data
foreach($siteOneDataNuggets as $siteOneDataNugget){
//Post it to site two
post_siteTwo_data($siteOneDataNugget);
}
当有这样一个过程,可能需要一段时间,我想显示一些加载屏幕/酒吧排序。这样的事情也将如何实施
我正在寻找一个编码哲学或标准的方式来处理我的上述情况。想法和理论是我正在寻找的,不一定是代码示例
我自己先入为主的选择。
另一种可能的方法是使用一个页面作为我可以请求的本地化“API”,每个页面都有自己的$siteOneDataNugget
实例,将逻辑扩展到1000多个页面,而不是一个页面。最有可能的做法是使用ajax为加载栏/表示层提供支持
进度报告
我还没有深入研究这个替代方案。从PHP CURL开始,当我发现加载需要几个小时(触发4分钟超时)时,我偶然发现了本文中介绍的使用异步CURL调用的方法。我还没有征服它自己。在这一点上,我远远领先于我的时代。我所做的真的很愚蠢,我向我的服务器发出了数千个AJAX请求,这些请求执行了一些操作。我应该做的是使用WebSockets/socket.io,这样我就可以在客户端和服务器之间进行某种双向通信,并能够处理批量操作和进度条 在提出这个问题时,两人都处于婴儿期