Delete temporal folders and some changes
This commit is contained in:
@@ -45,7 +45,7 @@ namespace Musify.Infrastructure.Messaging.Activities
|
||||
await processTrackingStore.CompleteStepAsync(processId, stepId, executeContext.CancellationToken);
|
||||
return executeContext.CompletedWithVariables(new Dictionary<string, object>
|
||||
{
|
||||
[RoutingSlipVariableNames.Workflow.TempDirectory] = workingDirectory,
|
||||
[RoutingSlipVariableNames.Workflow.TemporalDirectory] = workingDirectory,
|
||||
[RoutingSlipVariableNames.Audio.WorkingDirectory] = workingDirectory,
|
||||
[RoutingSlipVariableNames.Audio.SourceFilePath] = sourceFilePath,
|
||||
[RoutingSlipVariableNames.Audio.TranscodedDirectory] = workingDirectory
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace Musify.Infrastructure.Messaging.Activities
|
||||
try
|
||||
{
|
||||
var uploadedKeys = Directory.GetFiles(folderPath)
|
||||
.Select(file => $"{destinationKeyName}/{Path.GetFileName(file)}")
|
||||
.Select(file => $"{destinationKeyName}/{Path.GetFileName(file) }")
|
||||
.ToArray();
|
||||
|
||||
var transferFilesResult = await storageHandler.TransferFilesAsync(
|
||||
|
||||
+1
-1
@@ -56,7 +56,7 @@ namespace Musify.Infrastructure.Messaging.Activities
|
||||
await processTrackingStore.CompleteStepAsync(processId, stepId, executeContext.CancellationToken);
|
||||
return executeContext.CompletedWithVariables(new Dictionary<string, object>
|
||||
{
|
||||
[RoutingSlipVariableNames.Workflow.TempDirectory] = workingDirectory,
|
||||
[RoutingSlipVariableNames.Workflow.TemporalDirectory] = workingDirectory,
|
||||
[RoutingSlipVariableNames.Picture.OriginalFilePath] = sourceFilePath,
|
||||
[RoutingSlipVariableNames.Picture.SmallResizedFilePath] = smallPictureFilePath,
|
||||
[RoutingSlipVariableNames.Picture.MediumResizedFilePath] = mediumPictureFilePath,
|
||||
|
||||
@@ -5,5 +5,7 @@ namespace Musify.Infrastructure.Messaging.Consumers
|
||||
internal static Uri BuildExecuteActivityUri(string endpointName) => new($"queue:{endpointName}_execute");
|
||||
|
||||
internal static Uri BuildCompensateActivityUri(string endpointName) => new($"queue:{endpointName}_compensate");
|
||||
|
||||
internal static Uri BuildConsumerUri(string endpointName) => new($"queue:{endpointName}");
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ namespace Musify.Infrastructure.Messaging.Consumers
|
||||
{
|
||||
public class RemoveFileConsumer(
|
||||
IBus bus,
|
||||
RemoveFileRoutingSlipBuilder routingSlipBuilder)
|
||||
RemoveFileFromBucketRoutingSlipBuilder routingSlipBuilder)
|
||||
: IConsumer<RemoveFileEvent>
|
||||
{
|
||||
public const string QueueName = "Remove-File";
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
using MassTransit;
|
||||
using MassTransit.Courier.Contracts;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Musify.Infrastructure.Messaging;
|
||||
|
||||
namespace Musify.Infrastructure.MassTransit.Consumers
|
||||
{
|
||||
public class RoutingSlipCleanUpConsumer(
|
||||
ILogger<RoutingSlipCleanUpConsumer> logger) :
|
||||
IConsumer<RoutingSlipCompleted>,
|
||||
IConsumer<RoutingSlipFaulted>
|
||||
{
|
||||
public const string QueueName = "routing-slip-events";
|
||||
|
||||
public Task Consume(ConsumeContext<RoutingSlipCompleted> consumeContext)
|
||||
=> DeleteFolder(consumeContext.Message.Variables);
|
||||
|
||||
public Task Consume(ConsumeContext<RoutingSlipFaulted> consumeContext)
|
||||
=> DeleteFolder(consumeContext.Message.Variables);
|
||||
|
||||
Task DeleteFolder(IDictionary<string, object> variables)
|
||||
{
|
||||
if (!variables.TryGetValue(RoutingSlipVariableNames.Workflow.TemporalDirectory, out var pathObject))
|
||||
return Task.CompletedTask;
|
||||
|
||||
var pathString = pathObject.ToString();
|
||||
|
||||
if (string.IsNullOrEmpty(pathString))
|
||||
return Task.CompletedTask;
|
||||
|
||||
try
|
||||
{
|
||||
Directory.Delete(pathString, recursive: true);
|
||||
logger.LogInformation("Deleted temporal directory at path {Path}", pathString);
|
||||
}
|
||||
catch (DirectoryNotFoundException directoryNotFoundException)
|
||||
{
|
||||
logger.LogWarning(directoryNotFoundException, "Temporal directory at path {Path} was not found for deletion", pathString);
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
logger.LogError(exception, "Failed to delete temporal directory at path {Path}", pathString);
|
||||
throw;
|
||||
}
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
using MassTransit;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Musify.Infrastructure.Configuration;
|
||||
using Musify.Infrastructure.MassTransit.Consumers;
|
||||
using Musify.Infrastructure.Messaging.Activities;
|
||||
using Musify.Infrastructure.Messaging.Activities.Arguments;
|
||||
using Musify.Infrastructure.Messaging.Activities.Logs;
|
||||
@@ -29,7 +30,7 @@ namespace Musify.Infrastructure.Messaging
|
||||
{
|
||||
serviceDescriptors.AddScoped<AudioWorkflowRoutingSlipBuilder>();
|
||||
serviceDescriptors.AddScoped<PictureWorkflowRoutingSlipBuilder>();
|
||||
serviceDescriptors.AddScoped<RemoveFileRoutingSlipBuilder>();
|
||||
serviceDescriptors.AddScoped<RemoveFileFromBucketRoutingSlipBuilder>();
|
||||
|
||||
serviceDescriptors.AddMassTransit(options =>
|
||||
{
|
||||
@@ -37,6 +38,7 @@ namespace Musify.Infrastructure.Messaging
|
||||
options.AddConsumer<RemoveFileConsumer>();
|
||||
options.AddConsumer<TranscodeAudioFromTrackConsumer>();
|
||||
options.AddConsumer<UpdateTrackPictureConsumer>();
|
||||
options.AddConsumer<RoutingSlipCleanUpConsumer>();
|
||||
|
||||
options.AddExecuteActivity<RemoveFileFromBucketActivity, RemoveFileFromBucketArguments>();
|
||||
options.AddExecuteActivity<GenerateAudioWorkflowPathsActivity, GenerateAudioWorkflowPathsArguments>();
|
||||
@@ -77,6 +79,11 @@ namespace Musify.Infrastructure.Messaging
|
||||
endpointConfigurator.ConfigureConsumer<UpdateTrackPictureConsumer>(busRegistrationContext);
|
||||
} );
|
||||
|
||||
busFactoryConfigurator.ReceiveEndpoint(RoutingSlipCleanUpConsumer.QueueName, endpointConfigurator =>
|
||||
{
|
||||
endpointConfigurator.ConfigureConsumer<RoutingSlipCleanUpConsumer>(busRegistrationContext);
|
||||
} );
|
||||
|
||||
ConfigureExecuteActivityEndpoint<RemoveFileFromBucketActivity, RemoveFileFromBucketArguments>(
|
||||
busFactoryConfigurator,
|
||||
busRegistrationContext,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
using MassTransit;
|
||||
using MassTransit.Courier.Contracts;
|
||||
using Musify.Application.Events;
|
||||
using Musify.Infrastructure.Configuration;
|
||||
using Musify.Infrastructure.MassTransit.Consumers;
|
||||
using Musify.Infrastructure.Messaging.Activities;
|
||||
using Musify.Infrastructure.Messaging.Activities.Arguments;
|
||||
using Musify.Infrastructure.Messaging.Consumers;
|
||||
@@ -15,6 +17,10 @@ namespace Musify.Infrastructure.Messaging.RoutingSlip.Builders
|
||||
|
||||
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.CorrelationId, correlationId ?? Guid.Empty);
|
||||
|
||||
routingSlipBuilder.AddSubscription(
|
||||
MessagingHelper.BuildConsumerUri(RoutingSlipCleanUpConsumer.QueueName),
|
||||
RoutingSlipEvents.Completed | RoutingSlipEvents.Faulted);
|
||||
|
||||
routingSlipBuilder.AddActivity(
|
||||
ActivityNames.GenerateAudioWorkflowPaths,
|
||||
MessagingHelper.BuildExecuteActivityUri(GenerateAudioWorkflowPathsActivity.ExecuteEndpointName),
|
||||
@@ -35,7 +41,7 @@ namespace Musify.Infrastructure.Messaging.RoutingSlip.Builders
|
||||
MessagingHelper.BuildExecuteActivityUri(TranscodeDashAudioActivity.ExecuteEndpointName),
|
||||
new TranscodeDashAudioArguments(
|
||||
RoutingSlipVariableNames.Audio.SourceFilePath,
|
||||
RoutingSlipVariableNames.Workflow.TempDirectory));
|
||||
RoutingSlipVariableNames.Workflow.TemporalDirectory));
|
||||
|
||||
routingSlipBuilder.AddActivity(
|
||||
ActivityNames.UploadFiles,
|
||||
|
||||
+7
-1
@@ -1,6 +1,8 @@
|
||||
using MassTransit;
|
||||
using MassTransit.Courier.Contracts;
|
||||
using Musify.Application.Events;
|
||||
using Musify.Infrastructure.Configuration;
|
||||
using Musify.Infrastructure.MassTransit.Consumers;
|
||||
using Musify.Infrastructure.Messaging.Activities;
|
||||
using Musify.Infrastructure.Messaging.Activities.Arguments;
|
||||
using Musify.Infrastructure.Messaging.Consumers;
|
||||
@@ -25,6 +27,10 @@ namespace Musify.Infrastructure.Messaging.RoutingSlip.Builders
|
||||
message.LargePictureHeight,
|
||||
correlationId);
|
||||
|
||||
routingSlipBuilder.AddSubscription(
|
||||
MessagingHelper.BuildConsumerUri(RoutingSlipCleanUpConsumer.QueueName),
|
||||
RoutingSlipEvents.Completed | RoutingSlipEvents.Faulted);
|
||||
|
||||
routingSlipBuilder.AddActivity(
|
||||
ActivityNames.UpdateTrackPicture,
|
||||
MessagingHelper.BuildExecuteActivityUri(UpdateTrackPictureActivity.ExecuteEndpointName),
|
||||
@@ -134,7 +140,7 @@ namespace Musify.Infrastructure.Messaging.RoutingSlip.Builders
|
||||
MessagingHelper.BuildExecuteActivityUri(TransferFilesToBucketActivity.ExecuteEndpointName),
|
||||
new TransferFilesToBucketArguments(
|
||||
sourceBucketName,
|
||||
RoutingSlipVariableNames.Workflow.TempDirectory,
|
||||
RoutingSlipVariableNames.Workflow.TemporalDirectory,
|
||||
DestinationKeyNameVariableName: RoutingSlipVariableNames.Picture.DestinationFolderName));
|
||||
|
||||
return routingSlipBuilder;
|
||||
|
||||
+9
-2
@@ -1,11 +1,14 @@
|
||||
using MassTransit;
|
||||
using MassTransit.Courier.Contracts;
|
||||
using Musify.Application.Events;
|
||||
using Musify.Infrastructure.MassTransit.Consumers;
|
||||
using Musify.Infrastructure.Messaging.Activities;
|
||||
using Musify.Infrastructure.Messaging.Activities.Arguments;
|
||||
using Musify.Infrastructure.Messaging.Consumers;
|
||||
|
||||
namespace Musify.Infrastructure.Messaging.RoutingSlip.Builders
|
||||
{
|
||||
public class RemoveFileRoutingSlipBuilder
|
||||
public class RemoveFileFromBucketRoutingSlipBuilder
|
||||
{
|
||||
public RoutingSlipBuilder Build(RemoveFileEvent message, Guid? correlationId)
|
||||
{
|
||||
@@ -13,10 +16,14 @@ namespace Musify.Infrastructure.Messaging.RoutingSlip.Builders
|
||||
|
||||
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.CorrelationId, correlationId ?? Guid.Empty);
|
||||
|
||||
routingSlipBuilder.AddSubscription(
|
||||
MessagingHelper.BuildConsumerUri(RoutingSlipCleanUpConsumer.QueueName),
|
||||
RoutingSlipEvents.Completed | RoutingSlipEvents.Faulted);
|
||||
|
||||
routingSlipBuilder.AddActivity(
|
||||
ActivityNames.RemoveFile,
|
||||
MessagingHelper.BuildExecuteActivityUri(RemoveFileFromBucketActivity.ExecuteEndpointName),
|
||||
new Activities.Arguments.RemoveFileFromBucketArguments(
|
||||
new RemoveFileFromBucketArguments(
|
||||
message.BucketName,
|
||||
message.KeyName));
|
||||
|
||||
@@ -4,7 +4,7 @@ namespace Musify.Infrastructure.Messaging
|
||||
{
|
||||
internal static class Workflow
|
||||
{
|
||||
internal const string TempDirectory = "Workflow.TempDirectory";
|
||||
internal const string TemporalDirectory = "Workflow.TemporalDirectory";
|
||||
internal const string CorrelationId = "Workflow.CorrelationId";
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user