framework: messenger: transports: # Transport du scheduler — traité en synchrone dans le worker scheduler_main scheduler_main: dsn: 'scheduler://main' # Transport async Redis pour les messages lourds (ingestion) async: dsn: '%env(REDIS_URL)%' options: stream: rs971_async retry_strategy: max_retries: 3 delay: 60000 # 1 min entre chaque retry multiplier: 2 routing: # L'ingestion planifiée tourne dans le worker async (pas dans le worker scheduler) App\Message\IngestionScheduleMessage: async