/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $interval = $input->getOption('interval'); $batchJobs = $this->getObsoleteBatchJobsQueryBuilder($this->prepareDateInterval($interval)); $batchJobsIterator = new DeletionQueryResultIterator($batchJobs); $batchJobsIterator->setBufferSize(self::FLUSH_BATCH_SIZE); $batchJobsIterator->setHydrationMode(AbstractQuery::HYDRATE_SCALAR); if (!count($batchJobsIterator)) { $output->writeln('<info>There are no jobs eligible for clean up</info>'); return; } $output->writeln(sprintf('<comment>Batch jobs will be deleted:</comment> %d', count($batchJobsIterator))); $this->deleteRecords($batchJobsIterator, 'AkeneoBatchBundle:JobExecution'); $jobExecutions = $this->getObsoleteJobInstancesQueryBuilder(); $jobInstanceIterator = new DeletionQueryResultIterator($jobExecutions); $jobInstanceIterator->setBufferSize(self::FLUSH_BATCH_SIZE); $jobInstanceIterator->setHydrationMode(AbstractQuery::HYDRATE_SCALAR); $this->deleteRecords($jobInstanceIterator, 'AkeneoBatchBundle:JobInstance'); $output->writeln('<info>Batch job history cleanup complete</info>'); }