Skip to main content

BroccoliQueue

The main entry point for interacting with Broccoli message queues.

Creating a queue

builder

Creates a new BroccoliQueueBuilder for configuring the queue.
Parameters:
  • broker_url - Connection URL for the message broker
Example:

builder_with (SurrealDB only)

Creates a builder with an existing SurrealDB connection.

Publishing

publish

Publishes a single message to a queue.
Parameters:
  • topic - Queue name
  • disambiguator - Optional identifier for fairness queues
  • message - The message payload
  • options - Optional publish configuration
Returns: The wrapped BrokerMessage with generated task_id Example:

publish_batch

Publishes multiple messages to a queue.
Example:

Consuming

consume

Consumes a message, blocking until one is available.
Example:

try_consume

Attempts to consume a message without blocking.
Returns: Some(message) if available, None otherwise Example:

consume_batch

Consumes multiple messages with a timeout.
Example:

try_consume_batch

Attempts to consume multiple messages without blocking.

Message handling

acknowledge

Acknowledges successful processing of a message.
Example:

reject

Rejects a message, triggering retry or failure handling.

cancel

Cancels a message by ID.

Processing

process_messages

Processes messages in a loop with a handler function.
Parameters:
  • topic - Queue name
  • concurrency - Number of concurrent workers (None for single-threaded)
  • consume_options - Optional consume configuration
  • handler - Async function to process each message
Example:

process_messages_with_handlers

Processes messages with separate success and error handlers.
Example:

Queue information

size

Returns the size of queue(s).
Returns: Map of queue names to message counts

queue_status (management feature)

Returns detailed queue status.

BroccoliQueueBuilder

Builder for configuring BroccoliQueue.

pool_connections

Sets the connection pool size.
Default: 10

failed_message_retry_strategy

Configures retry behavior for failed messages.

enable_scheduling

Enables message scheduling.
Default: false

build

Builds the queue and connects to the broker.