Delete temporal folders and some changes
This commit is contained in:
@@ -40,12 +40,8 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="MassTransit\Activities\Audio\" />
|
<Folder Include="MassTransit\Activities\Audio\" />
|
||||||
<Folder Include="MassTransit\Activities\Pictures\" />
|
<Folder Include="MassTransit\Activities\Pictures\" />
|
||||||
<Folder Include="MassTransit\Arguments\" />
|
|
||||||
<Folder Include="MassTransit\Logs\" />
|
<Folder Include="MassTransit\Logs\" />
|
||||||
<Folder Include="MassTransit\RoutingSlip\" />
|
|
||||||
<Folder Include="MassTransit\RoutingSlip\Builders\" />
|
|
||||||
<Folder Include="MassTransit\RoutingSlip\Variables\" />
|
<Folder Include="MassTransit\RoutingSlip\Variables\" />
|
||||||
<Folder Include="MassTransit\Consumers\" />
|
|
||||||
<Folder Include="MassTransit\Filters\" />
|
<Folder Include="MassTransit\Filters\" />
|
||||||
<Folder Include="MassTransit\EventBus\" />
|
<Folder Include="MassTransit\EventBus\" />
|
||||||
<Folder Include="MassTransit\DependencyInjection\" />
|
<Folder Include="MassTransit\DependencyInjection\" />
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ namespace Musify.Infrastructure.Messaging.Activities
|
|||||||
await processTrackingStore.CompleteStepAsync(processId, stepId, executeContext.CancellationToken);
|
await processTrackingStore.CompleteStepAsync(processId, stepId, executeContext.CancellationToken);
|
||||||
return executeContext.CompletedWithVariables(new Dictionary<string, object>
|
return executeContext.CompletedWithVariables(new Dictionary<string, object>
|
||||||
{
|
{
|
||||||
[RoutingSlipVariableNames.Workflow.TempDirectory] = workingDirectory,
|
[RoutingSlipVariableNames.Workflow.TemporalDirectory] = workingDirectory,
|
||||||
[RoutingSlipVariableNames.Audio.WorkingDirectory] = workingDirectory,
|
[RoutingSlipVariableNames.Audio.WorkingDirectory] = workingDirectory,
|
||||||
[RoutingSlipVariableNames.Audio.SourceFilePath] = sourceFilePath,
|
[RoutingSlipVariableNames.Audio.SourceFilePath] = sourceFilePath,
|
||||||
[RoutingSlipVariableNames.Audio.TranscodedDirectory] = workingDirectory
|
[RoutingSlipVariableNames.Audio.TranscodedDirectory] = workingDirectory
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ namespace Musify.Infrastructure.Messaging.Activities
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var uploadedKeys = Directory.GetFiles(folderPath)
|
var uploadedKeys = Directory.GetFiles(folderPath)
|
||||||
.Select(file => $"{destinationKeyName}/{Path.GetFileName(file)}")
|
.Select(file => $"{destinationKeyName}/{Path.GetFileName(file) }")
|
||||||
.ToArray();
|
.ToArray();
|
||||||
|
|
||||||
var transferFilesResult = await storageHandler.TransferFilesAsync(
|
var transferFilesResult = await storageHandler.TransferFilesAsync(
|
||||||
|
|||||||
+1
-1
@@ -56,7 +56,7 @@ namespace Musify.Infrastructure.Messaging.Activities
|
|||||||
await processTrackingStore.CompleteStepAsync(processId, stepId, executeContext.CancellationToken);
|
await processTrackingStore.CompleteStepAsync(processId, stepId, executeContext.CancellationToken);
|
||||||
return executeContext.CompletedWithVariables(new Dictionary<string, object>
|
return executeContext.CompletedWithVariables(new Dictionary<string, object>
|
||||||
{
|
{
|
||||||
[RoutingSlipVariableNames.Workflow.TempDirectory] = workingDirectory,
|
[RoutingSlipVariableNames.Workflow.TemporalDirectory] = workingDirectory,
|
||||||
[RoutingSlipVariableNames.Picture.OriginalFilePath] = sourceFilePath,
|
[RoutingSlipVariableNames.Picture.OriginalFilePath] = sourceFilePath,
|
||||||
[RoutingSlipVariableNames.Picture.SmallResizedFilePath] = smallPictureFilePath,
|
[RoutingSlipVariableNames.Picture.SmallResizedFilePath] = smallPictureFilePath,
|
||||||
[RoutingSlipVariableNames.Picture.MediumResizedFilePath] = mediumPictureFilePath,
|
[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 BuildExecuteActivityUri(string endpointName) => new($"queue:{endpointName}_execute");
|
||||||
|
|
||||||
internal static Uri BuildCompensateActivityUri(string endpointName) => new($"queue:{endpointName}_compensate");
|
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(
|
public class RemoveFileConsumer(
|
||||||
IBus bus,
|
IBus bus,
|
||||||
RemoveFileRoutingSlipBuilder routingSlipBuilder)
|
RemoveFileFromBucketRoutingSlipBuilder routingSlipBuilder)
|
||||||
: IConsumer<RemoveFileEvent>
|
: IConsumer<RemoveFileEvent>
|
||||||
{
|
{
|
||||||
public const string QueueName = "Remove-File";
|
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 MassTransit;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Musify.Infrastructure.Configuration;
|
using Musify.Infrastructure.Configuration;
|
||||||
|
using Musify.Infrastructure.MassTransit.Consumers;
|
||||||
using Musify.Infrastructure.Messaging.Activities;
|
using Musify.Infrastructure.Messaging.Activities;
|
||||||
using Musify.Infrastructure.Messaging.Activities.Arguments;
|
using Musify.Infrastructure.Messaging.Activities.Arguments;
|
||||||
using Musify.Infrastructure.Messaging.Activities.Logs;
|
using Musify.Infrastructure.Messaging.Activities.Logs;
|
||||||
@@ -29,7 +30,7 @@ namespace Musify.Infrastructure.Messaging
|
|||||||
{
|
{
|
||||||
serviceDescriptors.AddScoped<AudioWorkflowRoutingSlipBuilder>();
|
serviceDescriptors.AddScoped<AudioWorkflowRoutingSlipBuilder>();
|
||||||
serviceDescriptors.AddScoped<PictureWorkflowRoutingSlipBuilder>();
|
serviceDescriptors.AddScoped<PictureWorkflowRoutingSlipBuilder>();
|
||||||
serviceDescriptors.AddScoped<RemoveFileRoutingSlipBuilder>();
|
serviceDescriptors.AddScoped<RemoveFileFromBucketRoutingSlipBuilder>();
|
||||||
|
|
||||||
serviceDescriptors.AddMassTransit(options =>
|
serviceDescriptors.AddMassTransit(options =>
|
||||||
{
|
{
|
||||||
@@ -37,6 +38,7 @@ namespace Musify.Infrastructure.Messaging
|
|||||||
options.AddConsumer<RemoveFileConsumer>();
|
options.AddConsumer<RemoveFileConsumer>();
|
||||||
options.AddConsumer<TranscodeAudioFromTrackConsumer>();
|
options.AddConsumer<TranscodeAudioFromTrackConsumer>();
|
||||||
options.AddConsumer<UpdateTrackPictureConsumer>();
|
options.AddConsumer<UpdateTrackPictureConsumer>();
|
||||||
|
options.AddConsumer<RoutingSlipCleanUpConsumer>();
|
||||||
|
|
||||||
options.AddExecuteActivity<RemoveFileFromBucketActivity, RemoveFileFromBucketArguments>();
|
options.AddExecuteActivity<RemoveFileFromBucketActivity, RemoveFileFromBucketArguments>();
|
||||||
options.AddExecuteActivity<GenerateAudioWorkflowPathsActivity, GenerateAudioWorkflowPathsArguments>();
|
options.AddExecuteActivity<GenerateAudioWorkflowPathsActivity, GenerateAudioWorkflowPathsArguments>();
|
||||||
@@ -77,6 +79,11 @@ namespace Musify.Infrastructure.Messaging
|
|||||||
endpointConfigurator.ConfigureConsumer<UpdateTrackPictureConsumer>(busRegistrationContext);
|
endpointConfigurator.ConfigureConsumer<UpdateTrackPictureConsumer>(busRegistrationContext);
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
busFactoryConfigurator.ReceiveEndpoint(RoutingSlipCleanUpConsumer.QueueName, endpointConfigurator =>
|
||||||
|
{
|
||||||
|
endpointConfigurator.ConfigureConsumer<RoutingSlipCleanUpConsumer>(busRegistrationContext);
|
||||||
|
} );
|
||||||
|
|
||||||
ConfigureExecuteActivityEndpoint<RemoveFileFromBucketActivity, RemoveFileFromBucketArguments>(
|
ConfigureExecuteActivityEndpoint<RemoveFileFromBucketActivity, RemoveFileFromBucketArguments>(
|
||||||
busFactoryConfigurator,
|
busFactoryConfigurator,
|
||||||
busRegistrationContext,
|
busRegistrationContext,
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
|
using MassTransit.Courier.Contracts;
|
||||||
using Musify.Application.Events;
|
using Musify.Application.Events;
|
||||||
using Musify.Infrastructure.Configuration;
|
using Musify.Infrastructure.Configuration;
|
||||||
|
using Musify.Infrastructure.MassTransit.Consumers;
|
||||||
using Musify.Infrastructure.Messaging.Activities;
|
using Musify.Infrastructure.Messaging.Activities;
|
||||||
using Musify.Infrastructure.Messaging.Activities.Arguments;
|
using Musify.Infrastructure.Messaging.Activities.Arguments;
|
||||||
using Musify.Infrastructure.Messaging.Consumers;
|
using Musify.Infrastructure.Messaging.Consumers;
|
||||||
@@ -15,6 +17,10 @@ namespace Musify.Infrastructure.Messaging.RoutingSlip.Builders
|
|||||||
|
|
||||||
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.CorrelationId, correlationId ?? Guid.Empty);
|
routingSlipBuilder.AddVariable(RoutingSlipVariableNames.Workflow.CorrelationId, correlationId ?? Guid.Empty);
|
||||||
|
|
||||||
|
routingSlipBuilder.AddSubscription(
|
||||||
|
MessagingHelper.BuildConsumerUri(RoutingSlipCleanUpConsumer.QueueName),
|
||||||
|
RoutingSlipEvents.Completed | RoutingSlipEvents.Faulted);
|
||||||
|
|
||||||
routingSlipBuilder.AddActivity(
|
routingSlipBuilder.AddActivity(
|
||||||
ActivityNames.GenerateAudioWorkflowPaths,
|
ActivityNames.GenerateAudioWorkflowPaths,
|
||||||
MessagingHelper.BuildExecuteActivityUri(GenerateAudioWorkflowPathsActivity.ExecuteEndpointName),
|
MessagingHelper.BuildExecuteActivityUri(GenerateAudioWorkflowPathsActivity.ExecuteEndpointName),
|
||||||
@@ -35,7 +41,7 @@ namespace Musify.Infrastructure.Messaging.RoutingSlip.Builders
|
|||||||
MessagingHelper.BuildExecuteActivityUri(TranscodeDashAudioActivity.ExecuteEndpointName),
|
MessagingHelper.BuildExecuteActivityUri(TranscodeDashAudioActivity.ExecuteEndpointName),
|
||||||
new TranscodeDashAudioArguments(
|
new TranscodeDashAudioArguments(
|
||||||
RoutingSlipVariableNames.Audio.SourceFilePath,
|
RoutingSlipVariableNames.Audio.SourceFilePath,
|
||||||
RoutingSlipVariableNames.Workflow.TempDirectory));
|
RoutingSlipVariableNames.Workflow.TemporalDirectory));
|
||||||
|
|
||||||
routingSlipBuilder.AddActivity(
|
routingSlipBuilder.AddActivity(
|
||||||
ActivityNames.UploadFiles,
|
ActivityNames.UploadFiles,
|
||||||
|
|||||||
+7
-1
@@ -1,6 +1,8 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
|
using MassTransit.Courier.Contracts;
|
||||||
using Musify.Application.Events;
|
using Musify.Application.Events;
|
||||||
using Musify.Infrastructure.Configuration;
|
using Musify.Infrastructure.Configuration;
|
||||||
|
using Musify.Infrastructure.MassTransit.Consumers;
|
||||||
using Musify.Infrastructure.Messaging.Activities;
|
using Musify.Infrastructure.Messaging.Activities;
|
||||||
using Musify.Infrastructure.Messaging.Activities.Arguments;
|
using Musify.Infrastructure.Messaging.Activities.Arguments;
|
||||||
using Musify.Infrastructure.Messaging.Consumers;
|
using Musify.Infrastructure.Messaging.Consumers;
|
||||||
@@ -25,6 +27,10 @@ namespace Musify.Infrastructure.Messaging.RoutingSlip.Builders
|
|||||||
message.LargePictureHeight,
|
message.LargePictureHeight,
|
||||||
correlationId);
|
correlationId);
|
||||||
|
|
||||||
|
routingSlipBuilder.AddSubscription(
|
||||||
|
MessagingHelper.BuildConsumerUri(RoutingSlipCleanUpConsumer.QueueName),
|
||||||
|
RoutingSlipEvents.Completed | RoutingSlipEvents.Faulted);
|
||||||
|
|
||||||
routingSlipBuilder.AddActivity(
|
routingSlipBuilder.AddActivity(
|
||||||
ActivityNames.UpdateTrackPicture,
|
ActivityNames.UpdateTrackPicture,
|
||||||
MessagingHelper.BuildExecuteActivityUri(UpdateTrackPictureActivity.ExecuteEndpointName),
|
MessagingHelper.BuildExecuteActivityUri(UpdateTrackPictureActivity.ExecuteEndpointName),
|
||||||
@@ -134,7 +140,7 @@ namespace Musify.Infrastructure.Messaging.RoutingSlip.Builders
|
|||||||
MessagingHelper.BuildExecuteActivityUri(TransferFilesToBucketActivity.ExecuteEndpointName),
|
MessagingHelper.BuildExecuteActivityUri(TransferFilesToBucketActivity.ExecuteEndpointName),
|
||||||
new TransferFilesToBucketArguments(
|
new TransferFilesToBucketArguments(
|
||||||
sourceBucketName,
|
sourceBucketName,
|
||||||
RoutingSlipVariableNames.Workflow.TempDirectory,
|
RoutingSlipVariableNames.Workflow.TemporalDirectory,
|
||||||
DestinationKeyNameVariableName: RoutingSlipVariableNames.Picture.DestinationFolderName));
|
DestinationKeyNameVariableName: RoutingSlipVariableNames.Picture.DestinationFolderName));
|
||||||
|
|
||||||
return routingSlipBuilder;
|
return routingSlipBuilder;
|
||||||
|
|||||||
+9
-2
@@ -1,11 +1,14 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
|
using MassTransit.Courier.Contracts;
|
||||||
using Musify.Application.Events;
|
using Musify.Application.Events;
|
||||||
|
using Musify.Infrastructure.MassTransit.Consumers;
|
||||||
using Musify.Infrastructure.Messaging.Activities;
|
using Musify.Infrastructure.Messaging.Activities;
|
||||||
|
using Musify.Infrastructure.Messaging.Activities.Arguments;
|
||||||
using Musify.Infrastructure.Messaging.Consumers;
|
using Musify.Infrastructure.Messaging.Consumers;
|
||||||
|
|
||||||
namespace Musify.Infrastructure.Messaging.RoutingSlip.Builders
|
namespace Musify.Infrastructure.Messaging.RoutingSlip.Builders
|
||||||
{
|
{
|
||||||
public class RemoveFileRoutingSlipBuilder
|
public class RemoveFileFromBucketRoutingSlipBuilder
|
||||||
{
|
{
|
||||||
public RoutingSlipBuilder Build(RemoveFileEvent message, Guid? correlationId)
|
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.AddVariable(RoutingSlipVariableNames.Workflow.CorrelationId, correlationId ?? Guid.Empty);
|
||||||
|
|
||||||
|
routingSlipBuilder.AddSubscription(
|
||||||
|
MessagingHelper.BuildConsumerUri(RoutingSlipCleanUpConsumer.QueueName),
|
||||||
|
RoutingSlipEvents.Completed | RoutingSlipEvents.Faulted);
|
||||||
|
|
||||||
routingSlipBuilder.AddActivity(
|
routingSlipBuilder.AddActivity(
|
||||||
ActivityNames.RemoveFile,
|
ActivityNames.RemoveFile,
|
||||||
MessagingHelper.BuildExecuteActivityUri(RemoveFileFromBucketActivity.ExecuteEndpointName),
|
MessagingHelper.BuildExecuteActivityUri(RemoveFileFromBucketActivity.ExecuteEndpointName),
|
||||||
new Activities.Arguments.RemoveFileFromBucketArguments(
|
new RemoveFileFromBucketArguments(
|
||||||
message.BucketName,
|
message.BucketName,
|
||||||
message.KeyName));
|
message.KeyName));
|
||||||
|
|
||||||
@@ -4,7 +4,7 @@ namespace Musify.Infrastructure.Messaging
|
|||||||
{
|
{
|
||||||
internal static class Workflow
|
internal static class Workflow
|
||||||
{
|
{
|
||||||
internal const string TempDirectory = "Workflow.TempDirectory";
|
internal const string TemporalDirectory = "Workflow.TemporalDirectory";
|
||||||
internal const string CorrelationId = "Workflow.CorrelationId";
|
internal const string CorrelationId = "Workflow.CorrelationId";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user