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); }); }
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); }); }
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); }); }
/// <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(); }
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); }); }
/// <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());
/// <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);