1.第一种思路,查询分页,循环查询
public function run($itemId = '')
{
//查询出所有需要待更新的数据,分页处理
$page = 1;
$listingUpdate = new LazadaOnlineListingUpdate();
$count = $listingUpdate->getCountByRawSql($this->type, $itemId);
$totalPages = ceil($count / $this->limit);
do {
$offset = ($page - 1) * $this->limit;
$data = $listingUpdate->getListByRawSql($this->type, $this->limit, $offset, $itemId);
if (!empty($data)) {
foreach ($data as $row) {
$this->updateProductStatus($row);
}
}
$page++;
} while ($page <= $totalPages);
}
2.分块查询
查询的数据进行切割分块处理
foreach (collect($leafData)->chunk(100) as $child_collect) {
$object->updateBatch($child_collect->toArray());
}