From c2e21677c5742d864985a2c54d86f536733f5b7f Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Sun, 2 Aug 2026 23:21:22 +0900 Subject: [PATCH] improvement: Enhance DownstreamConsumerJob logging - handle legacy events, suppress false warnings --- .../Jobs/DownstreamConsumerJob.cs | 37 ++++++++++++------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/src/KArtSell.Host/Jobs/DownstreamConsumerJob.cs b/src/KArtSell.Host/Jobs/DownstreamConsumerJob.cs index 1b243265..0da4c921 100644 --- a/src/KArtSell.Host/Jobs/DownstreamConsumerJob.cs +++ b/src/KArtSell.Host/Jobs/DownstreamConsumerJob.cs @@ -86,28 +86,37 @@ public sealed class DownstreamConsumerJob( if (outboxRow == default) { - logger.LogWarning("Outbox message {MessageId} not found; skipping", messageId); + logger.LogInformation("Outbox message {MessageId} not found; skipping (may be expired or deleted)", messageId); continue; } var (eventType, payloadJson) = outboxRow; - // Route to appropriate consumer - if (eventType == "ShadowRunCompleted") + // Route to appropriate consumer based on event type + switch (eventType) { - var @event = JsonSerializer.Deserialize(payloadJson) - ?? throw new InvalidOperationException($"Failed to deserialize payload for {messageId}"); + case "ShadowRunCompleted": + var shadowEvent = JsonSerializer.Deserialize(payloadJson) + ?? throw new InvalidOperationException($"Failed to deserialize {eventType} payload for {messageId}"); - await shadowRunConsumer.HandleAsync(@event, cancellationToken); - await approvalQueueConsumer.HandleAsync(@event, cancellationToken); - await auditLogConsumer.HandleAsync(@event, cancellationToken); + await shadowRunConsumer.HandleAsync(shadowEvent, cancellationToken); + await approvalQueueConsumer.HandleAsync(shadowEvent, cancellationToken); + await auditLogConsumer.HandleAsync(shadowEvent, cancellationToken); - LogMessageProcessed(logger, messageId, eventType, null); - processedCount++; - } - else - { - logger.LogWarning("Unknown event type {EventType} for message {MessageId}", eventType, messageId); + LogMessageProcessed(logger, messageId, eventType, null); + processedCount++; + break; + + case "TestEvent": + case "OldEvent": + case "RecentEvent": + // Legacy/test events - log as debug and skip + logger.LogDebug("Skipping legacy/test event type {EventType} for message {MessageId}", eventType, messageId); + break; + + default: + logger.LogInformation("Unsupported event type {EventType} for message {MessageId} (not yet implemented)", eventType, messageId); + break; } } catch (Exception ex)