BroadwayCloudPubSub.Client behaviour (BroadwayCloudPubSub v0.6.2) View Source

A generic behaviour to implement Pub/Sub Clients for BroadwayCloudPubSub.Producer.

This module defines callbacks to normalize options and receive messages from a Cloud Pub/Sub topic. Modules that implement this behaviour should be passed as the :client option from BroadwayCloudPubSub.Producer.

Link to this section Summary

Types

The amount of time (in seconds) before Pub/Sub should reschedule a message.

The ackId returned by Pub/Sub to be used when acknowledging a message.

A list of ackId strings.

A list of Broadway.Message structs.

Link to this section Types

Specs

ack_deadline() :: 0..600

The amount of time (in seconds) before Pub/Sub should reschedule a message.

Specs

ack_id() :: String.t()

The ackId returned by Pub/Sub to be used when acknowledging a message.

Specs

ack_ids() :: [ack_id()]

A list of ackId strings.

Specs

messages() :: [Broadway.Message.t()]

A list of Broadway.Message structs.

Link to this section Callbacks

Link to this callback

acknowledge(ack_ids, opts)

View Source (optional)

Specs

acknowledge(ack_ids(), opts :: any()) :: any()

Dispatches an acknowledge request.

Specs

init(opts :: any()) ::
  {:ok, normalized_opts :: any()} | {:error, message :: binary()}
Link to this callback

prepare_to_connect(name, producer_opts)

View Source (optional)

Specs

prepare_to_connect(name :: atom(), producer_opts :: keyword()) ::
  {[:supervisor.child_spec() | {module(), any()} | module()],
   producer_opts :: keyword()}

Invoked once by BroadwayCloudPubSub.Producer during Broadway.start_link/2.

The goal of this task is to manipulate the producer options, if necessary at all, and introduce any new child specs that will be started in Broadway's supervision tree.

Link to this callback

put_deadline(ack_ids, ack_deadline, opts)

View Source (optional)

Specs

put_deadline(ack_ids(), ack_deadline(), opts :: any()) :: any()

Dispatches a modifyAckDeadline request.

Link to this callback

receive_messages(demand, ack_builder, opts)

View Source

Specs

receive_messages(
  demand :: pos_integer(),
  ack_builder :: (ack_id() -> term()),
  opts :: any()
) :: messages()

Dispatches a pull request.