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; }
/// <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); }
/// <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(); }
public Chain(IPartitionEventHandler handler1, IPartitionEventHandler handler2) { _handler1 = handler1; _handler2 = handler2; }
/// <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);
/// <summary> /// Opportunity for subclasses to add their logic to the partition assignment callbacks. /// </summary> protected virtual IPartitionEventHandler AddToPartitionAssignmentHandler(IPartitionEventHandler handler) { return(handler); }
/// <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; }
/// <inheritdoc /> public IAutoSubscription WithPartitionEventsHandler(IPartitionEventHandler partitionEventHandler) { PartitionEventsHandler = new Option <IPartitionEventHandler>(partitionEventHandler); return(this); }
/// <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);