Fix processing pipeline: report album failures, fault handling on create slips, config key names, audio duration

This commit is contained in:
2026-09-24 05:02:04 +02:00
parent c8e9c7790e
commit ab388e6ad6
15 changed files with 119 additions and 32 deletions
@@ -22,7 +22,8 @@ public class AlbumPictureSourceRoutingSlipBuilder
message.Small,
message.Medium,
message.Large,
correlationId);
correlationId,
RoutingSlipVariableNames.ProcessKinds.AlbumCreation);
public RoutingSlipBuilder Build(UpdateAlbumPictureSourceEvent message, Guid? correlationId)
=> BuildSlip(
@@ -34,7 +35,8 @@ public class AlbumPictureSourceRoutingSlipBuilder
message.Small,
message.Medium,
message.Large,
correlationId);
correlationId,
RoutingSlipVariableNames.ProcessKinds.AlbumPicture);
private static RoutingSlipBuilder BuildSlip(
Guid albumId,
@@ -45,7 +47,8 @@ public class AlbumPictureSourceRoutingSlipBuilder
ImageSize small,
ImageSize medium,
ImageSize large,
Guid? correlationId)
Guid? correlationId,
string processKind)
{
var routingSlipBuilder = new RoutingSlipBuilder(NewId.NextGuid());
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.CorrelationId, correlationId ?? Guid.Empty);
@@ -79,6 +82,14 @@ public class AlbumPictureSourceRoutingSlipBuilder
medium,
large));
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.SubjectId, albumId);
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.ProcessKind, processKind);
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.Bucket, bucket);
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.PictureKey, pictureDestinationKey);
routingSlipBuilder.AddSubscription(
EndpointHelper.BuildConsumerUri(ProcessingSlipFaultConsumer.QueueName),
RoutingSlipEvents.Faulted);
return routingSlipBuilder;
}
}
@@ -57,6 +57,15 @@ public class CreateTrackRoutingSlipBuilder
message.Medium,
message.Large));
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.SubjectId, message.TrackId);
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.ProcessKind, RoutingSlipVariableNames.ProcessKinds.TrackCreation);
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.Bucket, message.Bucket);
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.PictureKey, message.PictureDestinationKey);
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.AudioKey, message.AudioDestinationKey);
routingSlipBuilder.AddSubscription(
EndpointHelper.BuildConsumerUri(ProcessingSlipFaultConsumer.QueueName),
RoutingSlipEvents.Faulted);
return routingSlipBuilder;
}
}
@@ -22,7 +22,8 @@ public class PlayListPictureSourceRoutingSlipBuilder
message.Small,
message.Medium,
message.Large,
correlationId);
correlationId,
RoutingSlipVariableNames.ProcessKinds.PlayListCreation);
public RoutingSlipBuilder Build(UpdatePlayListPictureSourceEvent message, Guid? correlationId)
=> BuildSlip(
@@ -34,7 +35,8 @@ public class PlayListPictureSourceRoutingSlipBuilder
message.Small,
message.Medium,
message.Large,
correlationId);
correlationId,
RoutingSlipVariableNames.ProcessKinds.PlayListPicture);
private static RoutingSlipBuilder BuildSlip(
Guid playListId,
@@ -45,7 +47,8 @@ public class PlayListPictureSourceRoutingSlipBuilder
ImageSize small,
ImageSize medium,
ImageSize large,
Guid? correlationId)
Guid? correlationId,
string processKind)
{
var routingSlipBuilder = new RoutingSlipBuilder(NewId.NextGuid());
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.CorrelationId, correlationId ?? Guid.Empty);
@@ -79,6 +82,14 @@ public class PlayListPictureSourceRoutingSlipBuilder
medium,
large));
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.SubjectId, playListId);
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.ProcessKind, processKind);
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.Bucket, bucket);
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.PictureKey, pictureDestinationKey);
routingSlipBuilder.AddSubscription(
EndpointHelper.BuildConsumerUri(ProcessingSlipFaultConsumer.QueueName),
RoutingSlipEvents.Faulted);
return routingSlipBuilder;
}
}
@@ -8,6 +8,9 @@ internal static class RoutingSlipVariableNames
internal const string CorrelationId = "Workflow.CorrelationId";
internal const string SubjectId = "Workflow.SubjectId";
internal const string ProcessKind = "Workflow.ProcessKind";
internal const string Bucket = "Workflow.Bucket";
internal const string PictureKey = "Workflow.PictureKey";
internal const string AudioKey = "Workflow.AudioKey";
}
internal static class ProcessKinds
@@ -16,6 +19,9 @@ internal static class RoutingSlipVariableNames
internal const string TrackAudio = "TrackAudio";
internal const string PlayListPicture = "PlayListPicture";
internal const string AlbumPicture = "AlbumPicture";
internal const string TrackCreation = "TrackCreation";
internal const string AlbumCreation = "AlbumCreation";
internal const string PlayListCreation = "PlayListCreation";
}
internal static class Audio