@@ -37,32 +37,36 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
3737 _logger . LogInformation ( "Waiting for database setup to complete before starting outbox processing..." ) ;
3838 await _startupService . StartupCompleted ;
3939 _logger . LogInformation ( "Database setup completed. Starting outbox processing..." ) ;
40-
41- using var scope = _serviceScopeFactory . CreateScope ( ) ;
42- var outboxRepository = scope . ServiceProvider . GetRequiredService < IOutboxRepository > ( ) ;
43- var messagingProvider = scope . ServiceProvider . GetRequiredService < IMessagingProvider > ( ) ;
44-
45- var databaseSession = scope . ServiceProvider . GetService < IDatabaseSession > ( ) ;
46- if ( databaseSession == null )
47- {
48- _logger . LogError ( "No valid database session found for persistence provider: {PersistenceProvider}" , _options . PersistenceProvider ) ;
49- return ;
50- }
51-
52- await databaseSession . OpenConnectionAsync ( stoppingToken ) ;
53-
40+
5441 while ( ! stoppingToken . IsCancellationRequested )
5542 {
43+ using var scope = _serviceScopeFactory . CreateScope ( ) ;
44+
5645 try
5746 {
47+ var outboxRepository = scope . ServiceProvider . GetRequiredService < IOutboxRepository > ( ) ;
48+ var messagingProvider = scope . ServiceProvider . GetRequiredService < IMessagingProvider > ( ) ;
49+ var databaseSession = scope . ServiceProvider . GetService < IDatabaseSession > ( ) ;
50+
51+ if ( databaseSession == null )
52+ {
53+ _logger . LogError ( "No valid database session found for persistence provider: {PersistenceProvider}" , _options . PersistenceProvider ) ;
54+ return ;
55+ }
56+
57+ await databaseSession . OpenConnectionAsync ( stoppingToken ) ;
58+
5859 var pendingEvents = await outboxRepository . GetPendingEventsAsync ( stoppingToken ) ;
5960
6061 foreach ( var outboxEntry in pendingEvents )
6162 {
6263 try
6364 {
64- var topic = EventTopicHelper . DetermineTopic ( outboxEntry . EventType ,
65- outboxEntry . EventName , _options . Events , _logger ) ;
65+ var topic = EventTopicHelper . DetermineTopic (
66+ outboxEntry . EventType ,
67+ outboxEntry . EventName ,
68+ _options . Events ,
69+ _logger ) ;
6670
6771 _logger . LogDebug ( "Publishing outbox event {EventId} to topic {Topic}" , outboxEntry . Id , topic ) ;
6872
0 commit comments