public RabbitMQueueServerListener(MQConnection connection, IMQueueServer server, bool responseServer) : base(connection, server, responseServer)
 {
     _messageType = responseServer ? typeof(ResponseMessage) : typeof(RequestMessage);
     _name        = server.Name;
     Core.Status.Attach(collection =>
     {
         collection.Add("Message Type", _messageType);
     });
 }
Beispiel #2
0
 public NATSQueueServerListener(MQConnection connection, IMQueueServer server, bool responseServer) : base(connection, server, responseServer)
 {
     _factory     = new ConnectionFactory();
     _messageType = responseServer ? typeof(ResponseMessage) : typeof(RequestMessage);
     _name        = server.Name;
     Core.Status.Attach(collection =>
     {
         collection.Add(nameof(_messageType), _messageType);
     });
 }
Beispiel #3
0
 public RedisQueueServerListener(MQConnection connection, IMQueueServer server, bool responseServer) : base(connection, server, responseServer)
 {
     _messageType            = responseServer ? typeof(ResponseMessage) : typeof(RequestMessage);
     _name                   = server.Name;
     _messageHandlerDelegate = new Action <RedisChannel, RedisValue>(MessageHandler);
     _processDelegate        = new Func <RedisValue, Task>(ProcessingTaskAsync);
     _monitorDelegate        = new Func <Task>(MonitorProcess);
     Core.Status.Attach(collection =>
     {
         collection.Add(nameof(_messageType), _messageType);
     });
 }
 protected MQueueServerListenerBase(MQConnection connection, IMQueueServer server, bool responseServer)
 {
     Connection         = connection;
     Config             = server.Config;
     Counters           = new MQServerCounters();
     ReceiverSerializer = server.ReceiverSerializer;
     ResponseServer     = responseServer;
     Core.Status.Attach(collection =>
     {
         collection.Add("Connection Route:", Connection?.Route);
         collection.Add("Connection Name:", Connection?.Name);
         collection.Add(nameof(ResponseServer), ResponseServer);
         Core.Status.AttachChild(Counters, this);
     });
 }
Beispiel #5
0
        /// <summary>
        /// Business message processor
        /// </summary>
        /// <param name="server">Queue server</param>
        /// <param name="businessCreationFunction">Business item creation function</param>
        public BusinessMessageProcessorAsync(IMQueueServer server, Func <IBusinessAsync> businessCreationFunction)
        {
            _creationFunction = businessCreationFunction ??
                                throw new ArgumentNullException(nameof(businessCreationFunction), "The bussines creation function can't be null");
            _maxMessagesPerQueue = server?.Config.RequestOptions.ServerReceiverOptions.MaxSimultaneousMessagesPerQueue ??
                                   throw new ArgumentNullException(nameof(server), "The IMQueueServer can't be null");
            var serverQueues = server.Config.ServerQueues?.FirstOf(
                c => c.EnvironmentName?.SplitAndTrim(",").Contains(Core.EnvironmentName) == true && c.MachineName?.SplitAndTrim(",").Contains(Core.MachineName) == true,
                c => c.EnvironmentName?.SplitAndTrim(",").Contains(Core.EnvironmentName) == true,
                c => c.MachineName?.SplitAndTrim(",").Contains(Core.MachineName) == true,
                c => c.EnvironmentName.IsNullOrWhitespace());

            _maxMessages         = (serverQueues?.RecvQueues?.Count ?? 0) * _maxMessagesPerQueue;
            BusinessInitialCount = (int)(_maxMessages * InitialBusinessesPercent) + 1;
            AttachStatus();
        }
Beispiel #6
0
            internal MemoryQueueServerListener(MQConnection connection, IMQueueServer server, bool responseServer) : base(
                    connection, server, responseServer)
            {
                var messageType = responseServer ? typeof(ResponseMessage) : typeof(RequestMessage);

                _name        = server.Name;
                _cloneObject = false;

                if (server.Config?.RequestOptions?.ServerReceiverOptions?.Parameters?.Contains("Clone") == true)
                {
                    _cloneObject = server.Config.RequestOptions.ServerReceiverOptions.Parameters["Clone"].ParseTo(false);
                }

                Core.Status.Attach(collection =>
                {
                    collection.Add("Message Type", messageType);
                });
            }
Beispiel #7
0
 /// <inheritdoc />
 /// <summary>
 /// Gets the message processor
 /// </summary>
 /// <param name="server">Queue server object instance</param>
 /// <returns>Message processor instance</returns>
 protected override IMessageProcessorAsync GetMessageProcessorAsync(IMQueueServer server)
 => new BusinessMessageProcessorAsync(server, () => new TBusinessAsync());
Beispiel #8
0
 /// <summary>
 /// Gets the message processor
 /// </summary>
 /// <param name="server">Queue server object instance</param>
 /// <returns>Message processor instance</returns>
 protected abstract IMessageProcessorAsync GetMessageProcessorAsync(IMQueueServer server);