# \[CronJob\] Shopware Thumbnail Generator

**URL:** <https://forum.shopware.com/t/cronjob-shopware-thumbnail-generator/47892>\
**Category:** Programmierung\
**Created:** [29. August 2017 um 08:53 UTC](https://forum.shopware.com/t/cronjob-shopware-thumbnail-generator/47892 "2017-08-29T08:53:05Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![\_Geloschter\_Benutze7](https://avatars.discourse-cdn.com/v4/letter/_/cdc98d/32.png) [@\_Geloschter\_Benutze7](https://forum.shopware.com/u/_Geloschter_Benutze7)\
**Post date:** [29. August 2017 um 08:53 UTC](https://forum.shopware.com/t/cronjob-shopware-thumbnail-generator/47892/1 "2017-08-29T08:53:05Z")

</div>

Hallo,&nbsp;

ich habe einen CronJob für Artikel Import porgrammiert mit dem dazugehörigen Artikelbilder Import, das funktioniert auch alles sehr gut, außer damit es einen Fehler gibt bei Shopware:

```
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 10972225 bytes) in .../engine/Shopware/Components/Thumbnail/Generator/Basic.php on line 221

```

Die Thumbnails werden wie folgt generiert:

```
// Media Variable
$media = new Media();
$media->setAlbumId($this->albumID);
/** @var Album $Album */
$Album = $this->getManager()->find('Shopware\Models\Media\Album', $this->albumID);
$media->setAlbum($Album);

$media->setFile($file);
$media->setName($image['filename']);
$media->setDescription($image['filename']);
$media->setCreated(new \DateTime());
$media->setUserId(0);

try { //persist the model into the model manager
  $this->getManager()->persist($media);
  $this->getManager()->flush();
} catch (ORMException $e) {
  return $e->getmessage();
}

//generate thumbnails
if ($media->getType() === Media::TYPE_IMAGE) {
   /**@var $manager \Shopware\Components\Thumbnail\Manager */
   $manager = Shopware()->Container()->get('thumbnail_manager');
   $manager->createMediaThumbnail($media, array(), true);
}

```

Das steht in der /Thumbnail/Generator/Basic.php Klasse&nbsp;:

```
/**
     * @param resource $image
     * @param array $originalSize
     * @param array $newSize
     * @param bool $extension
     *
     * @return resource
     */
    private function createNewImage($image, $originalSize, $newSize, $extension)
    {
        // Creates a new image with given size
        $newImage = imagecreatetruecolor($newSize['width'], $newSize['height']);

        if (in_array($extension, ['jpg', 'jpeg'])) {
            $background = imagecolorallocate($newImage, 255, 255, 255);
            imagefill($newImage, 0, 0, $background);
        } else {
            // Disables blending
            imagealphablending($newImage, false);
        }
        // Saves the alpha informations
        imagesavealpha($newImage, true);
        // Copies the original image into the new created image with resampling
        imagecopyresampled(
            $newImage,
            $image,
            0,
            0,
            0,
            0,
            $newSize['width'],
            $newSize['height'],
            $originalSize['width'],
            $originalSize['height']
        );

        return $newImage;
    }

```

&nbsp;

Die verwendete Shopware Version: 5.2.27

Kennt jemand eine Lösung oder erkennt meinen&nbsp;Fehler?

Vielen Dank, im vorraus.

Mit freundlichen Grüßen,&nbsp;  
Brian

---

<div class="post-metadata">

**Author:** ![Moritz\_Naczenski](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/moritz_naczenski/32/7792_2.png) [@Moritz\_Naczenski](https://forum.shopware.com/u/Moritz_Naczenski)\
**Post date:** [29. August 2017 um 08:56 UTC](https://forum.shopware.com/t/cronjob-shopware-thumbnail-generator/47892/2 "2017-08-29T08:56:20Z")

</div>

Hast du denn die Mindestvoraussetzungen erfüllt? Laut Meldung hat der Prozess nur ~134MB und keine 256MB, die ja Mindestvoraussetzung sind.

---

<div class="post-metadata">

**Author:** ![\_Geloschter\_Benutze7](https://avatars.discourse-cdn.com/v4/letter/_/cdc98d/32.png) [@\_Geloschter\_Benutze7](https://forum.shopware.com/u/_Geloschter_Benutze7)\
**Post date:** [29. August 2017 um 09:52 UTC](https://forum.shopware.com/t/cronjob-shopware-thumbnail-generator/47892/3 "2017-08-29T09:52:14Z")

</div>

> [@Moritz Naczenski schrieb:](https://forum.shopware.com/profile/14574/Moritz%20Naczenski "Moritz%20Naczenski")
> 
> Hast du denn die Mindestvoraussetzungen erfüllt? Laut Meldung hat der Prozess nur ~134MB und keine 256MB, die ja Mindestvoraussetzung sind.

Bei der Installation von Shopware haben wir die Mindestvorraussetzungen erfüllt da unser server 6 GB Arbeitspeicher hat.&nbsp;  
Und selbst während dem Prozess noch&nbsp;1,2&nbsp;GB&nbsp;frei hat.  
Ich werde mich jetzt daran setzten dem Prozess mehr Arbeitsspeicher zuweisen.

Danke sehr. &nbsp;&nbsp;

---

<div class="post-metadata">

**Author:** ![\_Geloschter\_Benutze7](https://avatars.discourse-cdn.com/v4/letter/_/cdc98d/32.png) [@\_Geloschter\_Benutze7](https://forum.shopware.com/u/_Geloschter_Benutze7)\
**Post date:** [30. August 2017 um 08:06 UTC](https://forum.shopware.com/t/cronjob-shopware-thumbnail-generator/47892/4 "2017-08-30T08:06:58Z")

</div>

> [@Moritz Naczenski schrieb:](https://forum.shopware.com/profile/14574/Moritz%20Naczenski "Moritz%20Naczenski")
> 
> Hast du denn die Mindestvoraussetzungen erfüllt? Laut Meldung hat der Prozess nur ~134MB und keine 256MB, die ja Mindestvoraussetzung sind.

Vielen Dank Moritz,&nbsp;

habe das Problem mit ini\_set im Command gelöst:&nbsp;

```
    /**
     * @param OutputInterface $output
     * @return bool
     */
    protected function start(OutputInterface $output, $type)
    {
        // enabled the full memory thats available.
        ini_set('memory_limit', '-1');
        
        // weiterer Code
        ......
     }

```

&nbsp;
