brocode/module-image-optimizer-queue

Magento 2 module adaption for generating asynchron messages for image optimization, based on internal Mysql Queue

Maintainers

Package info

github.com/brosenberger/module-image-optimizer-queue

Type:magento2-module

pkg:composer/brocode/module-image-optimizer-queue

Fund package maintenance!

By Me A Coffee

Statistics

Installs: 3

Dependents: 1

Suggesters: 1

Stars: 0

Open Issues: 0

1.1.0 2024-07-23 12:44 UTC

This package is auto-updated.

Last update: 2026-06-16 06:08:57 UTC


README

📖 Full docs, design notes & production guidance: brocode.at/modules/module-image-optimizer Part of the BroCode Image Optimizer family for Magento 2.

This module provides a queue configuration for asynchronous image conversions in Magento 2. It is based on the brocode/module-image-optimizer

Goals of this module:

  • Use of Magento 2 basic MySQL queue framework to
    • publish image files that need to be converted
    • consume image conversion message and asynchronously convert them to the target format

"Buy Me A Coffee"

Requirements

  • Magento 2.4.x
  • Web server: nginx (the only server Adobe supports from 2.4.9; nginx 1.30). Apache config is included for older installs, but Apache was dropped from Magento's tested requirements at 2.4.8-p3 / 2.4.7-p7.
  • PHP 8.3 / 8.4 (8.5 on 2.4.9)

Installation

composer require brocode/module-image-optimizer-queue
bin/magento module:enable BroCode_ImageQueueOptimizer
bin/magento setup:upgrade

Configuration

Basically nothing has to be configured and should run out of the box.

Any image needed to be converted is scanned with a cron job from the base module and published to the configured queue instead of a direct conversion.

To consume any conversion event published, you can manually start the queue consumer via the Magento CLI:

bin/magento queue:consumers:start BroCodeImageConversionConsumer

Consider using supervisor or any other process manager to keep the consumer running.

Define multiprocess consumer Every consumer queue can be locked in Magento 2, to enable multiple conversion processes, following snippet can be added to the env.php to execute 5 conversion consumer parallel on every cron execution:

    'cron_consumers_runner' => [
        'consumers' => [
            'BroCodeImageConversionConsumer'
        ],
        'multiple_processes' => [
            'BroCodeImageConversionConsumer' => 5
        ]
    ],

Module family

Module Purpose
module-image-optimizer Base: scan pub/media, write modern-format sidecars
module-image-optimizer-webp WebP converter
module-image-optimizer-avif AVIF converter
module-image-optimizer-queue Async conversion via the Magento queue
module-image-optimizer-amqp Async conversion over RabbitMQ/AMQP

Docs & guides: brocode.at