refactor(infra): S3 client singleton, ffmpeg pipe ordering, tidy streams/jobs
- Register IAmazonS3 as a singleton instead of scoped: the AWS SDK client is thread-safe and manages its own connection pool, so one instance per DI scope (per request / per job iteration) was wasteful and risked socket exhaustion - AudioTranscoderService: start reading stdout/stderr before writing stdin to remove the latent pipe-buffer deadlock shape - Dispose the resized-picture MemoryStream in ResizePictureActivity - Background jobs use PeriodicTimer instead of while + Task.Delay Verified: Worker boots against RabbitMQ + Postgres in Docker with no captive- dependency error (dev scope validation) and both jobs start. Build: 0 warnings, 0 errors.
This commit is contained in:
@@ -21,7 +21,7 @@ namespace Musify.Infrastructure.Services
|
||||
serviceDescriptors.AddSingleton(serviceProvider =>
|
||||
serviceProvider.GetRequiredService<IOptions<InfrastructureStorageConfiguration>>().Value);
|
||||
|
||||
serviceDescriptors.AddScoped<IAmazonS3>(serviceProvider =>
|
||||
serviceDescriptors.AddSingleton<IAmazonS3>(serviceProvider =>
|
||||
{
|
||||
var configuration = serviceProvider.GetRequiredService<InfrastructureStorageConfiguration>();
|
||||
var s3Configuration = new AmazonS3Config
|
||||
|
||||
Reference in New Issue
Block a user