Example #1
0
        public bool Subscribe()
        {
            this._eventingBasicConsumer.Received += (o, msg) =>
            {
                try
                {
                    EventMessage eventMessage = MessageEncodingHelper.GetMessage(msg);
                    this._cacheLogger.LogAsync($"Incoming message in RMQ BackPlane Subscription Channel with CorrelationId = {eventMessage.CorrelationId} ", EventLevel.Verbose);

                    OnMessage(eventMessage, new Dictionary <string, string>()
                    {
                        { nameof(BackPlaneChannelType), BackPlaneChannelType.RabbitMq.ToString() }
                    });
                }
                catch (Exception ex)
                {
                    this._cacheLogger.LogException(ex);
                }
                this._subscriptionClient.BasicAck(msg.DeliveryTag, false);
            };


            this._subscriptionClient.QueueBind(queue: this._cacheConfig.ListenerInstanceId, exchange: this._cacheConfig.CacheBackPlaneChannel, routingKey: "fanout");
            this._subscriptionClient.BasicConsume(this._cacheConfig.ListenerInstanceId, false, this._eventingBasicConsumer);

            return(true);
        }
Example #2
0
        public Task <bool> PublishEventAsync(EventMessage eventMessage)
        {
            _cacheLogger.LogAsync($" PublishMessage for RMQ channel - {JsonConvert.SerializeObject(eventMessage)}", EventLevel.Verbose);

            RabbitMqPayLoad temp = MessageEncodingHelper.GetRabbitMqMessage(eventMessage, this._topicClient.CreateBasicProperties());

            this._topicClient.BasicPublish(this._cacheConfig.CacheBackPlaneChannel, "fanout", temp.BasicProperties, temp.Data);
            this._cacheLogger.LogAsync($"Published Message on RMQ for Event Type  CorrelationId {eventMessage.CorrelationId}", EventLevel.Verbose);
            return(Task.FromResult(true));
        }