framework :
    messenger :
        transports :
            thumbnail_url_change :
                dsn : '%env(RABBITMQ_DSN)%/thumbnail_url_change'
                retry_strategy :
                    max_retries : 3
                    delay : 60 # 1 min
                    multiplier : 2
                    max_delay : 0 # No maximum delay
            download_process_zipping :
                dsn : '%env(RABBITMQ_DSN)%/download_process_zipping'
                retry_strategy :
                    max_retries : 3
                    delay : 60 # 1 min
                    multiplier : 2
                    max_delay : 0
            automate_embedded_metadata :
                dsn : '%env(RABBITMQ_DSN)%/automate_embedded_metadata'
                failure_transport : automate_embedded_metadata_failed
                retry_strategy :
                    max_retries : 3
                    delay : 30000 # 5 minutes
                    multiplier : 2
                    max_delay : 0 # No maximum delay
            automate_embedded_metadata_failed :
                dsn : '%env(RABBITMQ_DSN)%/automate_embedded_metadata_failed'

            pimcore_core :
                dsn : '%env(RABBITMQ_DSN)%/pimcore_core'

            pimcore_asset_update :
                dsn : '%env(RABBITMQ_DSN)%/pimcore_asset_update'
            #                options :
            #                    queues :
            #                        pimcore_asset_update : pimcore_asset_update
            data_definitions_import :
                dsn : '%env(RABBITMQ_DSN)%/data_definitions_import'
                failure_transport : data_definitions_import_failed
                retry_strategy :
                    max_retries : 5
                    delay : 300000 # 5 minutes
                    multiplier : 2
                    max_delay : 0 # No maximum delay
            #
            #            # Define a failure transport for RabbitMQ as well
            data_definitions_import_failed :
                dsn : '%env(RABBITMQ_DSN)%/data_definitions_import_failed'
            #                options :
            #                    queues :
            #                        data_definitions_import_failed : ~ #
            pimcore_search_backend_message :
                dsn : '%env(RABBITMQ_DSN)%/pimcore_search_backend_message' # Use the RabbitMQ DSN from your .env file
                #                options :
                #                    queues :
                #                        pimcore_search_backend_message : ~ # Default options
                failure_transport : pimcore_search_backend_message_failure # Define a failure transport
                retry_strategy :
                    max_retries : 3
                    delay : 1000 # Delay in milliseconds
                    multiplier : 2 # Multiplier for the delay for each retry
                    max_delay : 0 # Maximum delay; set to 0 to use the default
            #
            #                # Define transport for the failed messages
            pimcore_search_backend_message_failure :
                dsn : '%env(RABBITMQ_DSN)%/pimcore_search_backend_message_failure'
            #                options :
            #                    queues :
            #                        pimcore_search_backend_message_failure : ~ # Default options for the failure queue
            #            elements_process_manager :
            #                dsn : 'sync://'
            #                serializer : null
            #                options : { }
            #                failure_transport : null
            #                retry_strategy :
            #                    service : null
            #                    max_retries : 3
            #                    delay : 1000
            #                    multiplier : 2
            #                    max_delay : 0
            #                rate_limiter : null
            pimcore_maintenance :
                dsn : '%env(RABBITMQ_DSN)%/pimcore_maintenance' # Use the RabbitMQ DSN from your .env file
                #                options :
                #                    queues :
                #                        pimcore_maintenance : pimcore_maintenance #
                #                serializer : null
                #                failure_transport : null
                retry_strategy :
                    service : null
                    max_retries : 3
                    delay : 1000
                    multiplier : 2
                    max_delay : 0
                rate_limiter : null
            pimcore_image_optimize :
                dsn : '%env(RABBITMQ_DSN)%/pimcore_image_optimize' # Use the RabbitMQ DSN from your .env file
                #                options :
                #                    queues :
                #                        pimcore_image_optimize : pimcore_image_optimize
                #                serializer : null
                #                failure_transport : null
                retry_strategy :
                    service : null
                    max_retries : 3
                    delay : 1000
                    multiplier : 2
                    max_delay : 0
                rate_limiter : null
            digital_portal_thumbnail :
                dsn : '%env(RABBITMQ_DSN)%/digital_portal_thumbnail'
                #                options :
                #                    queues :
                #                        digital_portal_thumbnail : ~
                #                failure_transport : digital_portal_thumbnail_failed
                retry_strategy :
                    max_retries : 4
                    delay : 300000 # 5 minutes
                    multiplier : 2
                    max_delay : 0 # No maximum delay
            #            digital_portal_thumbnail_failed :
            #                dsn : '%env(RABBITMQ_DSN)%'
            #                options :
            #                    queues :
            #                        digital_portal_thumbnail_failed : ~ #
            pimcore_data_import :
                dsn : '%env(RABBITMQ_DSN)%/pimcore_data_import'

        routing :
            'App\Message\ThumbnailNameChangeMessage' : thumbnail_url_change
            'App\Message\AutomateEmbeddedMetadataMessage' : automate_embedded_metadata
            'App\Message\DigitalPortalThumbnailMessage' : digital_portal_thumbnail
            'Pimcore\Messenger\VideoConvertMessage' : pimcore_core
            'Pimcore\Messenger\CleanupThumbnailsMessage' : pimcore_core
            'Pimcore\Messenger\SanityCheckMessage' : pimcore_core
            'Pimcore\Messenger\AssetUpdateTasksMessage' : pimcore_asset_update
            'Pimcore\Messenger\AssetPreviewImageMessage' : pimcore_core
            'Pimcore\Messenger\GeneratePagePreviewMessage' : pimcore_core
            'Pimcore\Messenger\VersionDeleteMessage' : pimcore_core
            'Pimcore\Messenger\OptimizeImageMessage' : pimcore_image_optimize
            'Pimcore\Messenger\MaintenanceTaskMessage' : pimcore_maintenance
            'Pimcore\Bundle\DataImporterBundle\Messenger\DataImporterMessage' : pimcore_data_import
            'App\Message\DownloadZipInfoMessage' : download_process_zipping
