protected void ProcessSignal(SignalWrapper <SignalEvent <TKey> > item) { try { if (item.Signal.EventSettingsId == null) { SplitEvent(item); } else { ComposeAndApplyResult(item); } } catch (Exception ex) { _logger.LogError(ex, null); //increment fail counter and don't let same event to repeat exceptions multiple times _eventQueue.ApplyResult(item, ProcessingResult.Fail); } }