# `Kombu.Transport.Redis.Poller`
[🔗](https://github.com/hacktobeer/kombu/blob/v0.1.0/lib/kombu/transport/redis/poller.ex#L1)

Multi-channel event poller for Redis (`kombu.transport.redis.MultiChannelPoller`).

Coordinates consuming across one or more `Kombu.Transport.Redis.Channel` processes,
handling both list-based queues (`BRPOP` / `RPOP`) and fanout Pub/Sub subscriptions.

# `t`

```elixir
@type t() :: %Kombu.Transport.Redis.Poller{
  after_read: [(-&gt; any())],
  channels: [pid()],
  cycle_pos: non_neg_integer()
}
```

# `add_after_read`

```elixir
@spec add_after_read(t(), (-&gt; any())) :: t()
```

# `new`

```elixir
@spec new([pid()]) :: t()
```

# `poll`

```elixir
@spec poll(t(), keyword()) :: {:ok, t()}
```

Polls registered channels until a message is delivered or `timeout` (in seconds) expires.
Raises `Kombu.TimeoutError` on timeout or when no channels have active consumers.

# `register`

```elixir
@spec register(t(), pid()) :: t()
```

# `unregister`

```elixir
@spec unregister(t(), pid()) :: t()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
