我有一个do while代码可以到达API以从AWS Elastic search中获取数据。当我增加大小时,会出现内存错误。现在我已将大小减小到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。
答案 0 :(得分:0)
以下三种增加共享主机限制的方法:
只需在您遇到错误的行之前将此行添加到 文件
ini_set('memory_limit', '-1');
如果有权访问PHP.ini文件,请更改PHP.ini中的行 如果您的行显示32M,请尝试64M:memory_limit = 64M;最大金额 脚本可能会消耗的内存(64MB)
如果您无权访问PHP.ini,请尝试将其添加到.htaccess中 文件:php_value memory_limit 64M
还要确保您的文件指针有效,并为模式传递“ r”(=读取)。