Closed
Description
Symfony version(s) affected: 4.3
Description
Hello!
I cant define a custom retry_strategy by service
How to reproduce
my config
framework:
messenger:
transports:
cft:
dsn: '%env(CFT_DSN)%'
retry_strategy:
service: '@App\Cft\Messenger\CftRetryStrategy'
and error
[InvalidArgumentException]
"service" cannot be used along with the other retry_strategy options.
Possible Solution
may be fix DI configuration?
vendor/symfony/framework-bundle/DependencyInjection/Configuration.php
->arrayNode('retry_strategy')
->addDefaultsIfNotSet()
->validate()
->ifTrue(function ($v) { return null !== $v['service'] && (isset($v['max_retries']) || isset($v['delay']) || isset($v['multiplier']) || isset($v['max_delay'])); })
->thenInvalid('"service" cannot be used along with the other retry_strategy options.')
->end()
->children()
->scalarNode('service')->defaultNull()->info('Service id to override the retry strategy entirely')->end()
->integerNode('max_retries')->defaultValue(3)->min(0)->end()
->integerNode('delay')->defaultValue(1000)->min(0)->info('Time in ms to delay (or the initial value when multiplier is used)')->end()
->floatNode('multiplier')->defaultValue(2)->min(1)->info('If greater than 1, delay will grow exponentially for each retry: this delay = (delay * (multiple ^ retries))')->end()
->integerNode('max_delay')->defaultValue(0)->min(0)->info('Max time in ms that a retry should ever be delayed (0 = infinite)')->end()
->end()
->end()
@weaverryan
from slack