我已经增加了ini_set('max_execution_time',0)
中脚本的执行时间,但似乎codeigniter忽略了它并使我的脚本在执行30秒后停止。
我还搜索了如何增加codeigniter的执行时间,他们说它在codeigniter的系统核心,但是当我检查时,没有人可以调整。必须是因为我的codeigniter的版本是最新的。
我还在我的控制器上方添加了set_time_limit(0)
但没有效果,因此我把它放在函数内但结果相同。
我也尝试了{{1}}上面和脚本之前,但没有一个给出好结果....
请帮助,因为我需要处理超过3000条记录,并且需要超过10分钟......
答案 0 :(得分:1)
Hello尝试此代码在system / core / CodeIgniter.php中添加此脚本
if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0)
{
@set_time_limit(300);
}
答案 1 :(得分:0)
你使用什么类型的PHP?例如php5-fpm?
更好的方法是分批提取记录并处理它们,
设置一个cron作业来拉动10条记录并每5分钟处理一次,或者你可以将它们推入排队系统。
除非你对你的php进程进行守护,否则它不应该运行这么长时间,如果它记录了10分钟的3000条记录,它听起来非常耗尽内存,你可能会在这个执行时间内耗尽内存,所以再批次是最好的选择。
您也不希望在生产服务器上设置10分钟的执行时间,因为它可能很容易被滥用以占用您的系统资源。
答案 2 :(得分:0)
好的,当我将sql查询从模型更改为此时,我解决了我的问题:
function get_Logs()
{
$query = "SELECT EmpID, ValidDate, GROUP_CONCAT(ValidTime) AS LogTime FROM temp_logs GROUP BY EmpID,ValidDate";
$result = $this->db->query($query);
return $result->result_array();
}
Codeigniter查询格式以某种方式停止,即使有待处理的静态记录,但通过将其更改为本机sql语法结构,我的脚本可以正常工作....非常感谢发布的人对我的问题发表评论......