【发布时间】:2023-03-13 04:16:01
【问题描述】:
我有一段代码可以访问 API 以从 AWS Elastic 搜索中获取数据。当我增加大小时,我得到内存错误。现在我已将大小减小到 20,但想将结果作为 cronjob 循环,但它失败了。我已经将内存增加到 4096,但它失败了
我在 .ini 文件中增加了内存限制,但它失败了。由于它是一个 cronjob,我不知道如何使用滚动。
do {
$transporter = new TransporterController;
$response = $transporter->dispatchSearch($paper->title, '55%', $size, $from, $rounds );
$json_response = json_decode((string) $response->getBody(), true);
$rounds = $json_response['rounds'];
$from = $json_response['from'] + $json_response['size'];
$response = $transporter->purify($response, $object);
$impact_user_id = $paper->impact_user_id;
$impact_type_id = 2;
$response = $transporter->saveResult($response, $impact_user_id, $impact_type_id);
$transporter->notifier($response, $user);
} while ($rounds > 1);
这个想法是让循环运行到完成,直到最后一页。这是一个 laravel cronjob。
【问题讨论】:
-
很有可能你的循环会永远持续下去。您是否尝试过调试
$json_response['rounds']值? -
是的,我已经重组了代码以避免使用循环。我将最后一页保存到数据库并使用最后一页作为起始间隔再次查询。
标签: php laravel memory guzzle php-ini