我一直在导出xlsx文件,并且有一部分代码将数据插入数据库。
我有5000多个条目,而且我总是超时错误。我不知道该怎么办。我的示例如下。
我的代码:
{
$batchSize = 500;
for ($i = 1; $i <= 10000; ++$i) {
$user = new User();
$user->setEmail($userData['email']);
$user->setUsername($userData['email']);
$user->setPassword('plainpassword');
if (($i % $batchSize) === 0) {
$this->em->flush();
$this->em->clear();
}
}
$this->em->flush();
$this->em->clear();
return $userData;
}
答案 0 :(得分:0)
首先,此操作应在symfony命令中 然后,您可以这样做:
for ($i = 1; $i <= 10000; ++$i) {
$user = new User();
$user->setEmail($userData['email']);
$user->setUsername($userData['email']);
$user->setPassword('plainpassword');
}
// Do the flush only in the end of everything, that will save memory
$this->em->flush();
例如,您的命令为populate-user
。然后,您可以使用exec()
函数在PHP代码中调用它,并将输出设置为/dev/null
这将强制代码在后台执行,直到完成为止