尝试添加大量行时脚本超时



我正试图使用cakephp(用于QR码链接系统)将大量记录添加到我的数据库中。

我的基本代码是这样的:

public function generateQrCodes($program_id = null, $amount = 10000)
    {
        //add entries into database & generate QR images
        for ($i = 1; $i++; $i <= $amount) {
            $this->_createQr($program_id, $i);
        }
        //generate ZIP file
    }
    private function _createQr($program_id, $number)
    {
        //save into database
        $this->create();
        $this->data['Qrcode']['program_id'] = $program_id;
        $this->data['Qrcode']['qr'] = $number;
        $saved = $this->save();
        if ($saved) {
            $this->_createQrImage($program_id, $number);
            return true;
        } else {
            return false;
        }
    }

很明显,这会超时(大约900行之后)。有人能帮我想办法重写它,这样它就不会超时(以某种方式将它分成块)吗?

需要多长时间:$this->_createQrImage($program_id,$number)?

您可能可以在shell中执行此操作,这样它就不会超时。。

http://book.cakephp.org/1.3/en/view/1107/Creating-Shells-Tasks

或者,您可以将php.ini中的max_execution_time指令修改为更大的值。它的默认时间是30秒。如果您没有访问主php.ini的权限,例如您在共享主机上,那么您可以在自己的目录中创建php.ini的本地副本,它将允许您覆盖那些需要更改的指令。

http://www.php.net/manual/en/info.configuration.php#ini.max-执行时间

相关内容

  • 没有找到相关文章