我有一个关于使用处理大量数据的API的概念性问题。
我有两个正在运行的Web应用程序:
都使用RESTful API相互通信。
现在要从A到B发送大量数据(大约100万行)。
我的想法是从数据库中选择所有数据,即创建一个包含100万个子阵列的主阵列。接下来遍历主数组以获取每一行,并将此特定行作为Post-Request发送到系统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中是否已存在该行。如果存在,则发送更新请求而不是后请求。 另外......如果系统B中存在一行但系统A中不存在,则应将其从系统A中删除。
我的问题是:
这是正确的选择吗? 我应该考虑并行处理/多线程等概念吗?
答案 0 :(得分:1)
您应该在db查询中使用offset和limit。将整个数据集存储在PHP数组中是一个非常糟糕的主意。
您可以批量发送子集并在响应中返回ID列表(添加/更新/删除)。