public function execute(ExecutionContext $execution) { $property = $execution->getJobOption('property'); $data = $execution->read(); if (null !== $property) { $accessor = PropertyAccess::createPropertyAccessor(); } foreach ($data as $k => $result) { $context = $this->createContext($execution, $result->getMetadata()); $data = $result->getValue(); if (null !== $property) { $data = $accessor->getValue($data, $property); } $this->load($data, $context); } if (count($data) > 0) { $context = $this->createContext($execution, $result->getMetadata()); $this->flush($context); $this->clear($context); } if (false === $execution->getJobOption('requeue')) { // If a loader don't requeue message, the next job step will need the original data $execution->rewindData(); } }