/// <summary> /// Create subscriber from specified configuration key subscriber /// </summary> /// <param name="subscriberName"></param> /// <param name="callback"></param> /// <returns></returns> public IBrokerSubscription CreateSubscription(string subscriberName, Func <IBrokerContext, Task> callback, Func <IBrokerContext> factory = null) { if (factory == null) { factory = BrokerContextFactory; } if (!_brokerSubscriptionConfigurations.TryGetValue(subscriberName, out BrokerSubscriptionParameter subscriberParameter)) { throw new Exceptions.InvalidConfigurationException($"configuration subscription {subscriberName}"); } if (!_serverConfigurations.TryGetValue(subscriberParameter.ServerName, out ServerBrokerConfiguration server)) { throw new Exceptions.InvalidConfigurationException($"configuration server {subscriberParameter.ServerName}"); } IBroker _broker = new RabbitBroker(server) { Factory = this }; var subscriber = (RabbitBrokerSubscription)_broker.Subscribe(subscriberParameter, callback, factory); return(subscriber); }
public Session(int watcher, RabbitBroker broker, BrokerSubscriptionParameter parameters, Func <IBrokerContext, Task> callback, Func <IBrokerContext> factoryContext) { _nextWarnTime = RabbitClock.GetNow().AddSeconds((watcher * 2) + 1); _broker = broker; _parameters = parameters; _callback = callback; _watcher = watcher; _factoryContext = factoryContext; _callback = callback; _session = broker.GetChannel(); _session.BasicQos(0, (ushort)parameters.MaxParallelism, false); var _consumer = new EventingBasicConsumer(_session); _consumer.Received += _consumer_Received; _act = () => { _consumer.Received -= _consumer_Received; }; if (broker.Configuration.ConfigAllowed) { SetUpBindings(parameters, _session); } _session.BasicConsume(parameters.StorageQueueName, false, _consumer); }
/// <summary> /// subscribe with custom business delegate /// </summary> /// <param name="broker"></param> /// <param name="parameters"></param> /// <param name="callback"></param> internal void Subscribe(RabbitBroker broker, BrokerSubscriptionParameter parameters, Func <IBrokerContext, Task> callback, Func <IBrokerContext> factory) { _broker = broker; _parameters = parameters; _callback = callback; _watcher = parameters.WatchDog; _factory = factory; CreateSession(); }
/// <summary> /// Create broker server from specified configuration server name /// </summary> /// <param name="publisherName"></param> /// <returns></returns> public IBroker CreateServerBroker(string serverName) { if (!_serverConfigurations.TryGetValue(serverName, out ServerBrokerConfiguration server)) { throw new Exceptions.InvalidConfigurationException($"configuration server {serverName}"); } var _broker = new RabbitBroker(server) { Factory = this }; return(_broker); }
/// <summary> /// Create publisher from specified configuration key publisher /// </summary> /// <param name="publisherName"></param> /// <returns></returns> public IBrokerPublisher CreatePublisher(string publisherName) { if (!_brokerPublishConfigurations.TryGetValue(publisherName, out BrokerPublishParameter publisher)) { throw new Exceptions.InvalidConfigurationException($"configuration publisher {publisherName}"); } if (!_serverConfigurations.TryGetValue(publisher.ServerName, out ServerBrokerConfiguration server)) { throw new Exceptions.InvalidConfigurationException($"configuration server {publisher.ServerName}"); } var _broker = new RabbitBroker(server) { Factory = this }; var _publisher = _broker.GetPublisher(publisher); return(_publisher); }
public RabbitBrokerPublisher(RabbitBroker broker, BrokerPublishParameter brokerPublishParameters) { _broker = broker; BrokerPublishParameters = brokerPublishParameters; ServerConfiguration = _broker.Configuration; }