NSQ.Consumer.Backoff (elixir_nsq v1.2.0)

When messages fail unexpectedly hard, we go into "backoff mode".

Summary

Functions

This function is called asynchronously from resume_later. It will cause one connection to have RDY 1. We only resume after this if messages succeed a number of times == backoff_counter. (That logic is in start_stop_continue.)

Decision point about whether to continue/end/ignore backoff.

Functions

Link to this function

resume(cons, cons_state)

@spec resume(pid(), NSQ.Consumer.state()) :: {:ok, NSQ.Consumer.state()}

This function is called asynchronously from resume_later. It will cause one connection to have RDY 1. We only resume after this if messages succeed a number of times == backoff_counter. (That logic is in start_stop_continue.)

Link to this function

resume!(cons, cons_state)

Link to this function

start_stop_continue(cons, backoff_signal, cons_state)

@spec start_stop_continue(pid(), atom(), NSQ.Consumer.state()) ::
  {:ok, NSQ.Consumer.state()}

Decision point about whether to continue/end/ignore backoff.

Link to this function

start_stop_continue!(cons, backoff_signal, cons_state)