When Processor start stream it blocks on call to stream.NextEventshere until any event arrives. This method doesn’t return on keep-alive messages.
When Processor.Stop() is called it cancels Processor.ctx and waits for a all started streams to be finished.
However, there is no way this cancellation triggers anything inside single stream. Thus, until any real event arrives on nakadi - stream will block.
As implications:
• processor cannot stop all streams immediately
• processor cannot stop stream until other event than keep-alive is sent
When Processor start stream it blocks on call to
stream.NextEvents
here until any event arrives. This method doesn’t return on keep-alive messages.When
Processor.Stop()
is called it cancelsProcessor.ctx
and waits for a all started streams to be finished. However, there is no way this cancellation triggers anything inside single stream. Thus, until any real event arrives on nakadi - stream will block.As implications: • processor cannot stop all streams immediately • processor cannot stop stream until other event than keep-alive is sent