KubeMQ.Broadway.Events (kubemq v1.0.1)

Copy Markdown View Source

Broadway producer for KubeMQ Events (Pub/Sub).

Wraps KubeMQ.Client.subscribe_to_events/3 and delivers each KubeMQ.EventReceive as a Broadway.Message.

Usage

defmodule MyPipeline do
  use Broadway

  def start_link(_opts) do
    Broadway.start_link(__MODULE__,
      name: __MODULE__,
      producer: [
        module: {KubeMQ.Broadway.Events, [
          client: MyApp.KubeMQ,
          channel: "events.>",
          group: "pipeline"
        ]}
      ],
      processors: [default: [concurrency: 4]]
    )
  end

  @impl true
  def handle_message(_processor, message, _context) do
    event = message.data
    IO.inspect(event.channel, label: "received on")
    message
  end
end

Summary

Types

option()

@type option() ::
  {:client, GenServer.server()}
  | {:channel, String.t()}
  | {:group, String.t()}
  | {:max_buffer_size, pos_integer()}

Functions

handle_continue(atom, state)