You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
/** Send an `ack` to the underlying channel. */ack(message: amqplib.Message,allUpTo?: boolean): void{this._channel&&this._channel.ack(message,allUpTo);}
I see that under reconnection _channel is undefined.
Imagine that we get 1000 messages from the server and we want to consume them sequentially in a stream:
message<1>.ack() // OK
...reconnection
message<2>.ack() // FALSY OK, no channel set, ignored call to `_channel.ack`
message<3>.ack() // FALSY OK
...connected // Consumer restart
message<2>.ack() // OK
Any message during reconnection will be falsy acked and we can't known when we can stop the stream.
Am I wrong?
The text was updated successfully, but these errors were encountered:
I think it's possibile to mitigate it listening to the ConnectionManager disconnect event, but there is no event about every time the channel closed. Ok, I know if the connection is still up and the channel closes, opening a new one is very fast and we can attach to Channel connect event, but it is emitted after the setup.
We should have the possibility to control the consuming flow. Probably a new event on every close can help to mitigate my situation.
I was looking at the code and I see:
I see that under reconnection
_channel
is undefined.Imagine that we get 1000 messages from the server and we want to consume them sequentially in a stream:
Any message during reconnection will be falsy acked and we can't known when we can stop the stream.
Am I wrong?
The text was updated successfully, but these errors were encountered: