对于处理大量数据的API,我有一个相当概念性的问题。
我有两个web应用程序在运行:
两者都使用RESTful API相互通信。
现在,从A到B发送了大量的数据(大约100万行)。
我的概念是从数据库中选择所有数据,即创建一个包含100万个子数组的主数组。接下来,遍历主数组以获取每一行,并将此特定行作为Post请求发送到系统B。
代码示例:
$data = $sql-to-get-all-data;
$mainArray = $data->fetchAll();
foreach ($mainArray as $subArray) {
$row = $subArray;
// create post request and send $row to System B
}接下来,我需要检查系统B中的行是否已经存在。如果行已经存在,则发送更新请求而不是Post请求。还有..。如果系统B中存在行,但系统A中不存在行,则应将其从系统A中删除。
我的问题是:
这是正确的道路吗?我应该考虑像并行处理/多线程这样的概念吗?
发布于 2015-11-19 20:42:03
您应该在db查询中使用偏移量和限制。将整个数据集存储在PHP数组中是一个非常糟糕的想法。
您可以批量发送子集,并在响应中返回id列表(添加/更新/删除)。
https://stackoverflow.com/questions/33813866
复制相似问题