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(); } }
public function slice(ExecutionContext $execution, $metadata) { $offset = $execution->getOffset(); $limit = $execution->getLimit(); if (method_exists($this->processor, 'slice')) { return $this->processor->slice($offset, $limit); } $this->seek($offset); $data = []; for ($i = 0; $i < $limit && $this->valid(); $i++) { $data[] = $this->extract($this->createContext($execution, $metadata)); } return $data; }
public function execute(ExecutionContext $execution) { $data = $execution->read(); $this->debug(count($data) . ' rows'); foreach ($data as $k => $result) { $value = $result->getValue(); $metadata = $result->getMetadata(); $context = $this->createContext($execution, $metadata); $transformedData = $this->transform($value, $context); if (is_array($transformedData)) { foreach ($transformedData as $d) { $this->writeData($value, $metadata, $execution, $d); } } else { $this->writeData($value, $metadata, $execution, $transformedData); } } $execution->valid(); }
public function execute(ExecutionContext $execution, JobMessageFactory $factory) { return $execution->execute($this->context, $this->payload, $factory); }