我编写了一个Symfony命令来从API导入一些数据.它的工作原理但问题是当我在数据库中插入一个大的JSON时,我的PHP内存使用量会增加.并且我的unitOfWork在每次激活导入后增加"2".
我已经取消了所有用过的对象,当你想做大量的批处理时,我已经阅读了Symfony2的文档:http://www.doctrine-project.org/blog/doctrine2-batch-processing.html
但是当我使用$em->clear()我的实体管理器时会出现此错误:
注意:未定义的索引:000000007b56ea7100000000e366c259在path-to-application\vendor\doctrine\lib\Doctrine\ORM\UnitOfWork.php第2228行中
这是我的完整代码:
/**
* @see Command
*/
protected function configure() {
$this
->setName('ks:user:runkeepersync')
->setDescription('Synchroniser les activités d\'un utilisateur runkeeper')
->setDefinition(array(
new InputArgument('access_token', InputArgument::REQUIRED, 'Access token'),
))
}
/**
* @see Command
*/
protected function execute(InputInterface $input, OutputInterface $output) {
$accessToken = $input->getArgument('access_token');
$em = $this->getContainer()->get('doctrine')->getEntityManager();
$UserHasServices = $em->getRepository('KsUserBundle:UserHasServices')->findOneByToken($accessToken);
if (!is_object($UserHasServices) ) {
echo "Impossible de trouver l'utilisateur qui possède le jeton ".$accessToken."";
}
$user = $UserHasServices->getUser();
$service = $UserHasServices->getService();
echo "avant de …Run Code Online (Sandbox Code Playgroud)