internal void RecordConsumer(string consumerTag, RecordedConsumer consumer) { lock (_recordedEntitiesLock) { _recordedConsumers[consumerTag] = consumer; } }
private void UpdateConsumer(string oldTag, string newTag, RecordedConsumer consumer) { lock (_recordedEntitiesLock) { // make sure server-generated tags are re-added _recordedConsumers.Remove(oldTag); _recordedConsumers.Add(newTag, consumer); } }
public void RecordConsumer(string name, RecordedConsumer c) { lock (m_recordedEntitiesLock) { if (!m_recordedConsumers.ContainsKey(name)) { m_recordedConsumers.Add(name, c); } } }
private void RecoverConsumers() { if (_disposed) { throw new ObjectDisposedException(GetType().FullName); } Dictionary <string, RecordedConsumer> recordedConsumersCopy; lock (_recordedConsumers) { recordedConsumersCopy = new Dictionary <string, RecordedConsumer>(_recordedConsumers); } foreach (KeyValuePair <string, RecordedConsumer> pair in recordedConsumersCopy) { string tag = pair.Key; RecordedConsumer cons = pair.Value; try { string newTag = cons.Recover(); lock (_recordedConsumers) { // make sure server-generated tags are re-added _recordedConsumers.Remove(tag); _recordedConsumers.Add(newTag, cons); } foreach (EventHandler <ConsumerTagChangedAfterRecoveryEventArgs> h in ConsumerTagChangeAfterRecovery?.GetInvocationList() ?? Array.Empty <Delegate>()) { try { var eventArgs = new ConsumerTagChangedAfterRecoveryEventArgs(tag, newTag); h(this, eventArgs); } catch (Exception e) { var args = new CallbackExceptionEventArgs(e); args.Detail["context"] = "OnConsumerRecovery"; _delegate.OnCallbackException(args); } } } catch (Exception cause) { string s = string.Format("Caught an exception while recovering consumer {0} on queue {1}: {2}", tag, cons.Queue, cause.Message); HandleTopologyRecoveryException(new TopologyRecoveryException(s, cause)); } } }
public RecordedConsumer DeleteRecordedConsumer(string consumerTag) { RecordedConsumer rc = null; lock (m_recordedEntitiesLock) { if (m_recordedConsumers.ContainsKey(consumerTag)) { rc = m_recordedConsumers[consumerTag]; m_recordedConsumers.Remove(consumerTag); } } return(rc); }
protected void RecoverConsumers() { var dict = new Dictionary <string, RecordedConsumer>(m_recordedConsumers); foreach (KeyValuePair <string, RecordedConsumer> pair in dict) { string tag = pair.Key; RecordedConsumer cons = pair.Value; try { string newTag = cons.Recover(); lock (m_recordedConsumers) { // make sure server-generated tags are re-added m_recordedConsumers.Remove(tag); m_recordedConsumers.Add(newTag, cons); } if (m_consumerTagChange != null) { foreach (EventHandler <ConsumerTagChangedAfterRecoveryEventArgs> h in m_consumerTagChange.GetInvocationList()) { try { var eventArgs = new ConsumerTagChangedAfterRecoveryEventArgs(tag, newTag); h(this, eventArgs); } catch (Exception e) { var args = new CallbackExceptionEventArgs(e); args.Detail["context"] = "OnConsumerRecovery"; m_delegate.OnCallbackException(args); } } } } catch (Exception cause) { string s = String.Format("Caught an exception while recovering consumer {0} on queue {1}: {2}", tag, cons.Queue, cause.Message); HandleTopologyRecoveryException(new TopologyRecoveryException(s, cause)); } } }