EQueueConsumer CreateQueueConsumer(string commandQueueName, string consumerId, int fullLoadThreshold, int waitInterval) { var consumer = new EQueueConsumer(BrokerAddress, ConsumerPort, AdminPort, commandQueueName, commandQueueName, consumerId, fullLoadThreshold, waitInterval); consumer.Start(); return(consumer); }
EQueueConsumer CreateSubscriptionClient(string topic, string subscriptionName, string consumerId = null, int fullLoadThreshold = 1000, int waitInterval = 1000) { var consumer = new EQueueConsumer(BrokerAddress, ConsumerPort, AdminPort, topic, subscriptionName, consumerId, fullLoadThreshold, waitInterval); consumer.Start(); return(consumer); }
private EQueueConsumer CreateQueueConsumer(string commandQueueName, string consumerId, OnMessagesReceived onMessagesReceived, ConsumerConfig consumerConfig = null) { var consumer = new EQueueConsumer(ClusterName, NameServerList, commandQueueName, commandQueueName, consumerId, BuildOnEQueueMessageReceived(onMessagesReceived), consumerConfig); return(consumer); }
private EQueueConsumer CreateSubscriptionClient(string topic, string subscriptionName, OnMessagesReceived onMessagesReceived, string consumerId = null, ConsumerConfig consumerConfig = null) { var consumer = new EQueueConsumer(ClusterName, NameServerList, topic, subscriptionName, consumerId, BuildOnEQueueMessageReceived(onMessagesReceived), consumerConfig); return(consumer); }
public IMessageConsumer CreateQueueConsumer(string commandQueueName, OnMessagesReceived onMessagesReceived, string consumerId, ConsumerConfig consumerConfig, bool start = true) { var consumer = new EQueueConsumer(_clusterName, _nameServerList, new[] { commandQueueName }, commandQueueName, consumerId, BuildOnEQueueMessageReceived(onMessagesReceived), consumerConfig); if (start) { consumer.Start(); } return(consumer); }
public IMessageConsumer CreateTopicSubscription(string[] topics, string subscriptionName, OnMessagesReceived onMessagesReceived, string consumerId, ConsumerConfig consumerConfig, bool start = true) { var consumer = new EQueueConsumer(_clusterName, _nameServerList, topics, subscriptionName, consumerId, BuildOnEQueueMessageReceived(onMessagesReceived), consumerConfig); if (start) { consumer.Start(); } return(consumer); }
void ReceiveMessages(CancellationTokenSource cancellationTokenSource, OnMessagesReceived onMessagesReceived, EQueueConsumer equeueConsumer) { IEnumerable <EQueueMessages.QueueMessage> messages = null; #region peek messages that not been consumed since last time while (!cancellationTokenSource.IsCancellationRequested) { try { messages = equeueConsumer.PullMessages(100, 2000, cancellationTokenSource.Token); foreach (var message in messages) { try { var equeueMessage = Encoding.UTF8.GetString(message.Body).ToJsonObject <EQueueMessage>(); var messageContext = new MessageContext(equeueMessage, message.QueueId, message.QueueOffset); equeueConsumer.AddMessage(message); onMessagesReceived(messageContext); equeueConsumer.BlockIfFullLoad(); } catch (OperationCanceledException) { return; } catch (ThreadAbortException) { return; } catch (Exception ex) { if (message.Body != null) { equeueConsumer.RemoveMessage(message.QueueId, message.QueueOffset); } _logger.Error(ex.GetBaseException().Message, ex); } } } catch (OperationCanceledException) { return; } catch (ThreadAbortException) { return; } catch (Exception ex) { if (!cancellationTokenSource.IsCancellationRequested) { Thread.Sleep(1000); _logger.Error(ex.GetBaseException().Message, ex); } } } #endregion }