0

im ussing symfony messanger wiith doctrine handler. I start job example 100 tasks - 100 messages. When it start user get page with progress. Problem is that when user open page - in same time queue start work so somethink happen that when hi open page in queue is 99 tasks - so progressbar stop on 1 and never finish. progressbar is updated by mercue. - first message is send before page is loaded- that i think.

so i think cound rest of tasks - buy... entity dont have routing name so i cannot count tasks - it has only queue_name =always defaut.

here is my messanger config

framework:
    messenger:
        failure_transport: failed
        serializer:
            default_serializer: messenger.transport.symfony_serializer
            symfony_serializer:
                format: json
                context: {}
        transports:
            # https://symfony.com/doc/current/messenger.html#transport-configuration
            async:
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
                options:
                    use_notify: true
                    check_delayed_interval: 60000
                retry_strategy:
                    max_retries: 3
                    multiplier: 2
            shipping:
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
                options:
                    use_notify: true
                    check_delayed_interval: 60000
                retry_strategy:
                    max_retries: 3
                    multiplier: 2            
            fulfilment:
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
                options:
                    use_notify: true
                    check_delayed_interval: 60000
                retry_strategy:
                    max_retries: 3
                    multiplier: 2
            failed: 'doctrine://default?queue_name=failed'
            # sync: 'sync://'

        routing:
            Symfony\Component\Mailer\Messenger\SendEmailMessage: async
            Symfony\Component\Notifier\Message\ChatMessage: async
            Symfony\Component\Notifier\Message\SmsMessage: async
            App\Message\ShippingMessage: shipping
            App\Message\ShippedMessage: fulfilment

            # Route your messages to the transports
            # 'App\Message\YourMessage': async

so problem is know how big is qeue. i can make new entity jobs , and put there total task, outstanding task but i think maybe is possible to simple make progress bar for - messanger and merure ?

like i see doctrine dont use doctrine entity for save message - so I cannot use prePersist and add routeName to messenger_messages column so have easy count.

Developer
  • 2,731
  • 2
  • 41
  • 71

0 Answers0