public override Task Execute(RetryEventTaskParams taskConfig) { var type = Type.GetType(taskConfig.ProcessorType); var handler = _serviceProvider.GetService(type) as IDomainEventsHandler; // processor = null :'( if (handler != null) { try { handler.HandleEvent(taskConfig.Record); } catch (Exception ex) { IDomainEventsFaultHandler faultHandler = null; try { faultHandler = _serviceProvider.GetService <IDomainEventsFaultHandler>(); } catch { } faultHandler?.Handle(type, taskConfig.Record); //Events processor will add a retry } } return(Task.CompletedTask); }
public DomainEventsProcessor(IDomainEventsHandler handler, ICheckpointManager checkpointManager, IDomainEventsFaultHandler faultHandler = null) { Guard.ArgumentNotNull(handler, nameof(handler)); Guard.ArgumentNotNull(checkpointManager, nameof(checkpointManager)); if (faultHandler == null) { faultHandler = new DoNothingFaultHandler(); } _handler = handler; _faultHandler = faultHandler; CheckpointManager = checkpointManager; // ?? new InMemoryCheckpointManager(); }