Skip to content

Commit 4bb3ad9

Browse files
committed
feat: import export bundle
1 parent ac004bc commit 4bb3ad9

File tree

3 files changed

+7
-8
lines changed

3 files changed

+7
-8
lines changed

components/ImportExportBundle/src/lib/Job/JobRunner.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,15 @@ protected function run(Job $job, int $batchLimit = -1): int
4141
$workflow = $this->workflowRegistry->getWorkflow($job->getWorkflowIdentifier());
4242
$workflow->setLogger($logger);
4343

44-
$onWorkflowProgress = function (WorkflowEvent $event) use ($logger, $job) {
44+
$proccessed = 0;
45+
$onWorkflowProgress = function (WorkflowEvent $event) use (&$proccessed, $logger, $job) {
4546
$workflow = $event->getWorkflow();
4647
// Ibexa content creation trigger an entity manager clear, which mean we need to reload the entity
4748
$job = $this->jobRepository->findById($job->getId());
4849
$job->addRecords($logger->getRecords());
4950
$job->setProcessedItemsCount($workflow->getOffset());
5051
$this->jobRepository->save($job);
52+
++$proccessed;
5153
};
5254
$workflow->addEventListener(WorkflowEvent::PROGRESS, $onWorkflowProgress);
5355

@@ -81,7 +83,7 @@ protected function run(Job $job, int $batchLimit = -1): int
8183
$job = $this->jobRepository->findById($job->getId());
8284
$job->addRecords($logger->getRecords());
8385
$job->setWriterResults($workflow->getWriterResults());
84-
if (1 == $job->getProgress() || 0 === $job->getTotalItemsCount()) {
86+
if (1 == $job->getProgress() || 0 === $job->getTotalItemsCount() || 0 === $proccessed) {
8587
$job->setStatus(Job::STATUS_COMPLETED);
8688
$job->setEndTime($workflow->getEndTime());
8789
} else {

components/ImportExportBundle/src/lib/Reader/Xml/XmlReaderIterator.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ protected function findNextNode()
7373

7474
public function seek($offset): void
7575
{
76-
if ($offset > 0) {
77-
for ($i = 0; $i < $offset; ++$i) {
76+
if ($offset > 1) {
77+
for ($i = 1; $i < $offset; ++$i) {
7878
$this->xmlParser->parse();
7979
}
8080
}

components/ImportExportBundle/src/lib/Workflow/AbstractWorkflow.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,8 @@ public function __invoke(int $batchLimit = -1): void
8282
$this->dispatchEvent(new WorkflowEvent($this), WorkflowEvent::START);
8383

8484
$limitIterator = new LimitIterator($itemsIterator, $this->offset, $batchLimit);
85-
dump('Start memory Usage: '.memory_get_usage() / 1024 / 1024 .'Mo');
8685
foreach ($limitIterator as $index => $item) {
87-
$this->logger->setItemIndex($index);
86+
$this->logger->setItemIndex($index + 1);
8887
$this->referenceBag->resetScope(Reference::SCOPE_ITEM);
8988
try {
9089
foreach ($this->configuration->getProcessors() as $processor) {
@@ -105,8 +104,6 @@ public function __invoke(int $batchLimit = -1): void
105104
++$this->offset;
106105
$this->dispatchEvent(new WorkflowEvent($this), WorkflowEvent::PROGRESS);
107106
}
108-
dump('End Usage: '.memory_get_usage() / 1024 / 1024 .'Mo');
109-
dump('Peak Usage: '.memory_get_usage() / 1024 / 1024 .'Mo');
110107

111108
foreach ($writers as $index => $writer) {
112109
$writer->finish();

0 commit comments

Comments
 (0)