/// <summary> /// Initializes a new instance of the <see cref="AsyncProducer"/> class. /// </summary> /// <param name="config"> /// The producer config. /// </param> /// <param name="callbackHandler"> /// The callback invoked when a request is finished being sent. /// </param> public AsyncProducer( AsyncProducerConfiguration config, ICallbackHandler callbackHandler) { Guard.NotNull(config, "config"); this.Config = config; this.callbackHandler = callbackHandler; this.connection = new KafkaConnection( this.Config.Host, this.Config.Port, this.Config.BufferSize, this.Config.SocketTimeout); }
/// <summary> /// Add a new asynchronous producer to the pool. /// </summary> /// <param name="broker">The broker informations.</param> public override void AddProducer(Broker broker) { this.EnsuresNotDisposed(); Guard.NotNull(broker, "broker"); var asyncConfig = new AsyncProducerConfiguration(this.Config, broker.Id, broker.Host, broker.Port) { SerializerClass = this.Config.SerializerClass }; var asyncProducer = new AsyncProducer(asyncConfig, this.CallbackHandler); Logger.InfoFormat( CultureInfo.CurrentCulture, "Creating async producer for broker id = {0} at {1}:{2}", broker.Id, broker.Host, broker.Port); this.asyncProducers.Add(broker.Id, asyncProducer); }
/// <summary> /// Initializes a new instance of the <see cref="AsyncProducer"/> class. /// </summary> /// <param name="config"> /// The producer config. /// </param> /// <param name="callbackHandler"> /// The callback invoked when a request is finished being sent. /// </param> public AsyncProducer( AsyncProducerConfiguration config, ICallbackHandler callbackHandler) { Guard.NotNull(config, "config"); this.Config = config; this.callbackHandler = callbackHandler; this.connection = new KafkaConnection( this.Config.Host, this.Config.Port, this.Config.BufferSize, this.Config.SocketTimeout, this.Config.IdleTimeToKeepAlive, this.Config.KeepAliveInterval, this.Config.SocketPollingTimeout, this.Config.SocketPollingLevel); }
/// <summary> /// Initializes a new instance of the <see cref="AsyncProducer"/> class. /// </summary> /// <param name="config"> /// The producer config. /// </param> public AsyncProducer(AsyncProducerConfiguration config) : this( config, ReflectionHelper.Instantiate <ICallbackHandler>(config.CallbackHandlerClass)) { }
/// <summary> /// Initializes a new instance of the <see cref="AsyncProducer"/> class. /// </summary> /// <param name="config"> /// The producer config. /// </param> public AsyncProducer(AsyncProducerConfiguration config) : this(config, ReflectionHelper.Instantiate<ICallbackHandler>(config.CallbackHandlerClass)) { }