flownative/neos-asyncimagevariants

A package that allows for asynchronous image variant creation in Neos.Media

v0.0.1 2024-10-21 22:19 UTC

This package is auto-updated.

Last update: 2024-11-21 22:31:02 UTC


README

MIT license Packagist Packagist Maintenance level: Love

Flownative.Neos.AsyncImageVariants

Description

This Flow package allows to asynchronously generate image variants for Neos.Media images.

It does this by switching off automatic variant creation (through settings) and wiring a slot to the assetCreated signal emitted in the AssetService. That slot creates a job in the job queue that executes the asset variant creation asynchronously.

Installation

This is installed as a regular Flow package via Composer. For your existing project, simply include flownative/neos-asyncimagevariants into the dependencies of your Flow or Neos distribution:

composer require flownative/neos-asyncimagevariants

Configuration

The package itself has one configuration option for the job queue name to use, it defaults to media-queue.

Flownative:
  Neos:
    AsyncImageVariants:
      # the queue to use for jobs
      jobQueue: 'media-queue'

That queue of course needs to be configured, e.g. like this:

Flowpack:
  JobQueue:
    Common:
      queues:
        'media-queue':
          className: 'Flowpack\JobQueue\Doctrine\Queue\DoctrineQueue'
          executeIsolated: true
          releaseOptions:
            delay: 15
          options:
            backendOptions:
              driver: '%env:DATABASE_DRIVER%'
              host: '%env:DATABASE_HOST%'
              port: '%env:DATABASE_PORT%'
              dbname: '%env:DATABASE_NAME%'
              user: '%env:DATABASE_USER%'
              password: '%env:DATABASE_PASSWORD%'

Make sure to run ./flow job:work media-queue continuously in the background.

Troubleshooting

  • If things don't work as expected, check the system log.
  • Check if jobs are queued by using ./flow queue:list
  • Run ./flow job:work media-queue --verbose --limit 1 to debug job execution