diff --git a/services/Archival/FilterLists.Archival.Infrastructure/Scheduling/ConfigurationExtensions.cs b/services/Archival/FilterLists.Archival.Infrastructure/Scheduling/ConfigurationExtensions.cs index 961bde835..8e34b1225 100644 --- a/services/Archival/FilterLists.Archival.Infrastructure/Scheduling/ConfigurationExtensions.cs +++ b/services/Archival/FilterLists.Archival.Infrastructure/Scheduling/ConfigurationExtensions.cs @@ -1,6 +1,5 @@ using System; using Hangfire; -using MediatR; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -15,11 +14,7 @@ internal static class ConfigurationExtensions public static void AddSchedulingServices(this IServiceCollection services, IConfiguration configuration) { _redis = ConnectionMultiplexer.Connect(configuration.GetConnectionString("SchedulingConnection")); - services.AddHangfire((provider, globalConfiguration) => - { - var mediator = provider.GetService(); - globalConfiguration.UseRedisStorage(_redis).UseMediatR(mediator); - }); + services.AddHangfire((_, globalConfiguration) => globalConfiguration.UseRedisStorage(_redis).UseMediatR()); } public static void UseScheduling(this IApplicationBuilder app) diff --git a/services/Archival/FilterLists.Archival.Infrastructure/Scheduling/ScheduleMediator.cs b/services/Archival/FilterLists.Archival.Infrastructure/Scheduling/ScheduleMediator.cs index 08ee2cf43..c8e20e69f 100644 --- a/services/Archival/FilterLists.Archival.Infrastructure/Scheduling/ScheduleMediator.cs +++ b/services/Archival/FilterLists.Archival.Infrastructure/Scheduling/ScheduleMediator.cs @@ -6,65 +6,29 @@ namespace FilterLists.Archival.Infrastructure.Scheduling { - /// https://codeopinion.com/background-commands-mediatr-hangfire/ public static class RequestExtensions { public static void EnqueueBackgroundJob(this IRequest request) { // Hangfire replaces CancellationToken at runtime with its own. We just need any in the signature. // https://docs.hangfire.io/en/latest/background-methods/using-cancellation-tokens.html#cancellationtoken - BackgroundJob.Enqueue(m => m.Send(request, CancellationToken.None)); + BackgroundJob.Enqueue(m => m.Send(request, CancellationToken.None)); } public static void ScheduleBackgroundJob(this IRequest request, TimeSpan delay) { - BackgroundJob.Schedule(m => m.Send(request, CancellationToken.None), delay); - } - - public static void AddOrUpdateRecurringJob(this IRequest request, Func cronExpression) - { - RecurringJob.AddOrUpdate(m => m.Send(request, CancellationToken.None), cronExpression); + BackgroundJob.Schedule(m => m.Send(request, CancellationToken.None), delay); } } internal static class HangfireExtension { - public static IGlobalConfiguration UseMediatR(this IGlobalConfiguration config, IMediator mediator) + public static IGlobalConfiguration UseMediatR(this IGlobalConfiguration globalConfiguration) { - config.UseActivator(new MediatorJobActivator(mediator)); + /// https://codeopinion.com/background-commands-mediatr-hangfire/ GlobalConfiguration.Configuration.UseSerializerSettings( new JsonSerializerSettings {TypeNameHandling = TypeNameHandling.Objects}); - return config; - } - } - - internal class MediatorJobActivator : JobActivator - { - private readonly IMediator _mediator; - - public MediatorJobActivator(IMediator mediator) - { - _mediator = mediator; - } - - public override object ActivateJob(Type type) - { - return new HangfireMediator(_mediator); - } - } - - internal class HangfireMediator - { - private readonly IMediator _mediator; - - public HangfireMediator(IMediator mediator) - { - _mediator = mediator; - } - - public void Send(IRequest request, CancellationToken cancellationToken) - { - _mediator.Send(request, cancellationToken); + return globalConfiguration; } } }