Php symfony2中的批处理
我在symfony2中创建了一个自定义控制台命令。此命令将调用api为所有用户查找合适的作业。然后我会得到这样一个错误。 我的代码如下:Php symfony2中的批处理,php,symfony,batch-processing,Php,Symfony,Batch Processing,我在symfony2中创建了一个自定义控制台命令。此命令将调用api为所有用户查找合适的作业。然后我会得到这样一个错误。 我的代码如下: $em = $this->getContainer()->get('doctrine')->getEntityManager('default'); $user = $em->getRepository('EnsUserBundle:User')->findAll(); f
$em = $this->getContainer()->get('doctrine')->getEntityManager('default');
$user = $em->getRepository('EnsUserBundle:User')->findAll();
foreach ($user as $user)
{
.....
$em->flush();
}
}
}
然后我想为每个用户清除entitymanager
$em = $this->getContainer()->get('doctrine')->getEntityManager('default');
$user = $em->getRepository('EnsUserBundle:User')->findAll();
foreach ($user as $user)
{
.....
$em->flush();
$em->clear();
}
}
}
这将导致一个错误:
然后我尝试使用批处理过程:
$em = $this->getContainer()->get('doctrine')->getEntityManager('default');
$user = $em->getRepository('EnsUserBundle:User')->findAll();
$iterableResult = $em->getRepository('EnsUserBundle:User')->findAll()->iterate();
while (($row = $iterableResult->next()) !== false)
{
foreach ($user as $user)
{
.....
$em->flush();
$em->clear();
}
$em->detach($row[0]);
}
}
但这会导致一个错误
那么,你有什么好的建议吗?
谢谢大家! 您可以尝试:
- 增加脚本在php内部消耗的最大内存:php.ini
内存限制=512M
- 当对象达到XX项时刷新对象(例如:每100项)。您可以在每次刷新管理器时清除它