Skip to content

Commit 1741669

Browse files
committed
MC-42892: [Performance] Product image resize function onsave taking long time when saving product images in admin panel
1 parent 6464c6d commit 1741669

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

app/code/Magento/Catalog/Observer/ImageResizeAfterProductSave.php

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,7 @@ public function execute(\Magento\Framework\Event\Observer $observer)
8989

9090
if (!(bool) $product->getId()) {
9191
foreach ($product->getMediaGalleryImages() as $image) {
92-
if ($this->imageResizeSchedulerFlag) {
93-
$this->imageResizeScheduler->schedule($image->getFile());
94-
} else {
95-
$this->imageResize->resizeFromImageName($image->getFile());
96-
}
92+
$this->resizeImage($image->getFile());
9793
}
9894
} else {
9995
$new = $product->getData('media_gallery');
@@ -102,12 +98,22 @@ public function execute(\Magento\Framework\Event\Observer $observer)
10298
$mediaOriginalGallery = !empty($original['images']) ? array_column($original['images'], 'file') : [];
10399

104100
foreach (array_diff($mediaGallery, $mediaOriginalGallery) as $image) {
105-
if ($this->imageResizeSchedulerFlag) {
106-
$this->imageResizeScheduler->schedule($image);
107-
} else {
108-
$this->imageResize->resizeFromImageName($image);
109-
}
101+
$this->resizeImage($image);
110102
}
111103
}
112104
}
105+
106+
/**
107+
* Resize image in synchronous or asynchronous way
108+
*
109+
* @param string $image
110+
*/
111+
private function resizeImage(string $image): void
112+
{
113+
if ($this->imageResizeSchedulerFlag) {
114+
$this->imageResizeScheduler->schedule($image);
115+
} else {
116+
$this->imageResize->resizeFromImageName($image);
117+
}
118+
}
113119
}

0 commit comments

Comments
 (0)