コード例 #1
0
            public RebalanceListener(IPartitionEventHandler <K, V> partitionEventHandler, KafkaConsumerActor <K, V> actor)
            {
                _partitionEventHandler = partitionEventHandler;
                _actor = actor;

                var restrictedConsumerTimeoutMs = Math.Round(actor._settings.PartitionHandlerWarning.TotalMilliseconds * 0.95);

                _restrictedConsumer = new RestrictedConsumer <K, V>(actor._consumer, TimeSpan.FromMilliseconds(restrictedConsumerTimeoutMs));
                _warningDuration    = actor._settings.PartitionHandlerWarning;
            }
コード例 #2
0
        /// <summary>
        /// KafkaConsumerActor
        /// </summary>
        /// <param name="owner">Owner actor to send critical failures to</param>
        /// <param name="settings">Consumer settings</param>
        /// <param name="partitionEventHandler">Partion events handler</param>
        public KafkaConsumerActor(IActorRef owner, ConsumerSettings <K, V> settings, IPartitionEventHandler <K, V> partitionEventHandler)
        {
            _owner    = owner;
            _settings = settings;
            _partitionEventHandler = partitionEventHandler;

            _pollMessage        = new Internal.Poll <K, V>(this, periodic: true);
            _delayedPollMessage = new Internal.Poll <K, V>(this, periodic: false);
            _log = Context.GetLogger();
            _commitRefreshing = CommitRefreshing.Create <K, V>(_settings.CommitRefreshInterval);
        }
コード例 #3
0
        /// <summary>
        /// KafkaConsumerActor
        /// </summary>
        /// <param name="owner">Owner actor to send critical failures to</param>
        /// <param name="settings">Consumer settings</param>
        /// <param name="statisticsHandler">Statistics handler</param>
        /// <param name="partitionEventHandler">Partion events handler</param>
        public KafkaConsumerActor(IActorRef owner, ConsumerSettings <K, V> settings, IPartitionEventHandler partitionEventHandler, IStatisticsHandler statisticsHandler)
        {
            _owner                 = owner;
            _settings              = settings;
            _statisticsHandler     = statisticsHandler;
            _partitionEventHandler = partitionEventHandler;

            var restrictedConsumerTimeoutMs = Math.Round(_settings.PartitionHandlerWarning.TotalMilliseconds * 0.95);

            _restrictedConsumer = new RestrictedConsumer <K, V>(_consumer, TimeSpan.FromMilliseconds(restrictedConsumerTimeoutMs));
            _warningDuration    = _settings.PartitionHandlerWarning;

            _pollMessage        = new Internal.Poll <K, V>(this, periodic: true);
            _delayedPollMessage = new Internal.Poll <K, V>(this, periodic: false);
            _log = Context.GetLogger();
        }
コード例 #4
0
 public Chain(IPartitionEventHandler handler1, IPartitionEventHandler handler2)
 {
     _handler1 = handler1;
     _handler2 = handler2;
 }
コード例 #5
0
 /// <summary>
 /// Gets actor props
 /// </summary>
 internal static Props GetProps <K, V>(IActorRef owner, ConsumerSettings <K, V> settings, Decider decider, IPartitionEventHandler handler, IStatisticsHandler statisticsHandler) =>
 Props.Create(() => new KafkaConsumerActor <K, V>(owner, settings, decider, handler, statisticsHandler)).WithDispatcher(settings.DispatcherId);
コード例 #6
0
 /// <summary>
 /// Opportunity for subclasses to add their logic to the partition assignment callbacks.
 /// </summary>
 protected virtual IPartitionEventHandler AddToPartitionAssignmentHandler(IPartitionEventHandler handler)
 {
     return(handler);
 }
コード例 #7
0
 /// <summary>
 /// PartitionAssignedHandlersChain
 /// </summary>
 /// <param name="handler1">First handler in chain</param>
 /// <param name="handler2">Second handler in chain</param>
 public PartitionAssignedHandlersChain(IPartitionEventHandler <K, V> handler1, IPartitionEventHandler <K, V> handler2)
 {
     _handler1 = handler1;
     _handler2 = handler2;
 }
コード例 #8
0
 /// <inheritdoc />
 public IAutoSubscription WithPartitionEventsHandler(IPartitionEventHandler partitionEventHandler)
 {
     PartitionEventsHandler = new Option <IPartitionEventHandler>(partitionEventHandler);
     return(this);
 }
コード例 #9
0
 /// <summary>
 /// Gets actor props
 /// </summary>
 internal static Props GetProps <K, V>(ConsumerSettings <K, V> settings, IPartitionEventHandler <K, V> handler) =>
 Props.Create(() => new KafkaConsumerActor <K, V>(ActorRefs.Nobody, settings, handler)).WithDispatcher(settings.DispatcherId);