Skip to content

Commit fb5f37d

Browse files
authored
FRW-10578: Publish performance improvements (#11653)
FRW-10578 Publish performance improvements.
1 parent b2a2818 commit fb5f37d

File tree

3 files changed

+24
-12
lines changed

3 files changed

+24
-12
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"spryker/store": "^1.7.0",
1919
"spryker/symfony": "^3.0.0",
2020
"spryker/synchronization": "^0.2.0 || ^1.0.0",
21-
"spryker/synchronization-behavior": "^1.0.0",
21+
"spryker/synchronization-behavior": "^1.13.0",
2222
"spryker/synchronization-extension": "^1.0.0",
2323
"spryker/transfer": "^3.27.0",
2424
"spryker/url": "^3.3.0",

src/Spryker/Zed/ProductStorage/Business/Storage/ProductAbstractStorageWriter.php

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,12 @@
1515
use Spryker\Zed\ProductStorage\Dependency\Facade\ProductStorageToStoreFacadeInterface;
1616
use Spryker\Zed\ProductStorage\Persistence\ProductStorageQueryContainerInterface;
1717
use Spryker\Zed\ProductStorage\Persistence\ProductStorageRepositoryInterface;
18+
use Spryker\Zed\Propel\Persistence\BatchProcessor\ActiveRecordBatchProcessorTrait;
1819

1920
class ProductAbstractStorageWriter implements ProductAbstractStorageWriterInterface
2021
{
22+
use ActiveRecordBatchProcessorTrait;
23+
2124
/**
2225
* @var string
2326
*/
@@ -157,6 +160,7 @@ public function publish(array $productAbstractIds)
157160
}
158161

159162
$this->storeData($productAbstractLocalizedEntities, $productAbstractStorageEntities);
163+
$this->commit();
160164
}
161165

162166
/**
@@ -169,6 +173,7 @@ public function unpublish(array $productAbstractIds)
169173
$spyProductStorageEntities = $this->findProductAbstractStorageEntities($productAbstractIds);
170174

171175
$this->deleteProductAbstractStorageEntities($spyProductStorageEntities);
176+
$this->commit();
172177
}
173178

174179
/**
@@ -179,19 +184,19 @@ public function unpublish(array $productAbstractIds)
179184
protected function deleteProductAbstractStorageEntities(array $productAbstractStorageEntities)
180185
{
181186
foreach ($productAbstractStorageEntities as $productAbstractStorageEntity) {
182-
$productAbstractStorageEntity->delete();
187+
$this->remove($productAbstractStorageEntity);
183188
}
184189
}
185190

186191
/**
187-
* @param \Orm\Zed\ProductStorage\Persistence\SpyProductAbstractStorage $productAbstractStorage
192+
* @param \Orm\Zed\ProductStorage\Persistence\SpyProductAbstractStorage $productAbstractStorageEntity
188193
*
189194
* @return void
190195
*/
191-
protected function deleteProductAbstractStorageEntity(SpyProductAbstractStorage $productAbstractStorage)
196+
protected function deleteProductAbstractStorageEntity(SpyProductAbstractStorage $productAbstractStorageEntity)
192197
{
193-
if (!$productAbstractStorage->isNew()) {
194-
$productAbstractStorage->delete();
198+
if (!$productAbstractStorageEntity->isNew()) {
199+
$this->remove($productAbstractStorageEntity);
195200
}
196201
}
197202

@@ -397,8 +402,9 @@ protected function storeProductAbstractStorageEntity(
397402
->setData($productAbstractStorageTransfer->toArray())
398403
->setStore($storeName)
399404
->setLocale($localeName)
400-
->setIsSendingToQueue($this->isSendingToQueue)
401-
->save();
405+
->setIsSendingToQueue($this->isSendingToQueue);
406+
407+
$this->persist($spyProductStorageEntity);
402408
}
403409

404410
/**

src/Spryker/Zed/ProductStorage/Business/Storage/ProductConcreteStorageWriter.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,12 @@
1212
use Orm\Zed\ProductStorage\Persistence\SpyProductConcreteStorage;
1313
use Spryker\Zed\ProductStorage\Dependency\Facade\ProductStorageToProductInterface;
1414
use Spryker\Zed\ProductStorage\Persistence\ProductStorageQueryContainerInterface;
15+
use Spryker\Zed\Propel\Persistence\BatchProcessor\ActiveRecordBatchProcessorTrait;
1516

1617
class ProductConcreteStorageWriter implements ProductConcreteStorageWriterInterface
1718
{
19+
use ActiveRecordBatchProcessorTrait;
20+
1821
/**
1922
* @var string
2023
*/
@@ -130,6 +133,7 @@ public function publish(array $productIds)
130133
}
131134

132135
$this->storeData($productConcreteLocalizedEntities, $productConcreteStorageEntities);
136+
$this->commit();
133137
}
134138

135139
/**
@@ -142,6 +146,7 @@ public function unpublish(array $productIds)
142146
$productConcreteStorageEntities = $this->findProductConcreteStorageEntities($productIds);
143147

144148
$this->deleteProductConcreteStorageEntities($productConcreteStorageEntities);
149+
$this->commit();
145150
}
146151

147152
/**
@@ -152,7 +157,7 @@ public function unpublish(array $productIds)
152157
protected function deleteProductConcreteStorageEntities(array $productConcreteStorageEntities)
153158
{
154159
foreach ($productConcreteStorageEntities as $productConcreteStorageEntity) {
155-
$productConcreteStorageEntity->delete();
160+
$this->remove($productConcreteStorageEntity);
156161
}
157162
}
158163

@@ -164,7 +169,7 @@ protected function deleteProductConcreteStorageEntities(array $productConcreteSt
164169
protected function deletedProductConcreteSorageEntity(SpyProductConcreteStorage $productConcreteStorageEntity)
165170
{
166171
if (!$productConcreteStorageEntity->isNew()) {
167-
$productConcreteStorageEntity->delete();
172+
$this->remove($productConcreteStorageEntity);
168173
}
169174
}
170175

@@ -325,8 +330,9 @@ protected function storeProductConcreteStorageEntity(
325330
->setFkProduct($productConcreteStorageTransfer->getIdProductConcrete())
326331
->setData($productConcreteStorageTransfer->toArray())
327332
->setLocale($localeName)
328-
->setIsSendingToQueue($this->isSendingToQueue)
329-
->save();
333+
->setIsSendingToQueue($this->isSendingToQueue);
334+
335+
$this->persist($productConcreteStorageEntity);
330336
}
331337

332338
/**

0 commit comments

Comments
 (0)