AzureStorage.Queue (AzureStorage v0.1.8)

Copy Markdown View Source

Azure Queue Storage

ref. https://docs.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api

{:ok, context} = AzureStorage.create_queue_service("account_name", "account_key")
context |> list_queues()

Summary

Functions

The Put Message operation adds a new message to the back of the message queue.

The Create Queue operation creates a queue in a storage account.

Azure Queue items can be retrieve by calling get_messages/3.

The Delete Queue operation permanently deletes the specified queue.

The Get Messages operation retrieves one or more messages from the front of the queue.

This operation lists all of the queues in a given storage account.

Update queue item commonly use for updating queue item visibility timeout as well as queue message body

Functions

create_message(context, queue_name, text, options \\ [])

The Put Message operation adds a new message to the back of the message queue.

A visibility timeout can also be specified to make the message invisible until the visibility timeout expires. A message must be in a format that can be included in an XML request with UTF-8 encoding. The encoded message can be up to 64 KiB in size for versions 2011-08-18 and newer, or 8 KiB in size for previous versions.

ref. https://docs.microsoft.com/en-us/rest/api/storageservices/put-message

context |> create_message("booking-queue", "hello world")

create_queue(context, name)

The Create Queue operation creates a queue in a storage account.

ref. https://docs.microsoft.com/en-us/rest/api/storageservices/create-queue4

context |> create_queue("booking-queue")

delete_message(context, queue_name, map)

Azure Queue items can be retrieve by calling get_messages/3.

However, queue items are not remove from storage. Therefore, client need to send request to delete queue item when it is done processing.

delete_queue(context, name)

The Delete Queue operation permanently deletes the specified queue.

ref. https://docs.microsoft.com/en-us/rest/api/storageservices/delete-queue3

context |> delete_queue("booking-queue")

get_messages(context, queue_name, options \\ [])

@spec get_messages(AzureStorage.Request.Context.t(), String.t(), keyword()) ::
  {:ok, list() | []} | {:error, String.t()}

The Get Messages operation retrieves one or more messages from the front of the queue.

ref. https://docs.microsoft.com/en-us/rest/api/storageservices/get-messages

Supported options:

  • :visibilitytimeout (integer/0) - Message visibility timeout in second The default value is 30.

  • :numofmessages (integer/0) - Number of messages to retrieve from the queue, up to a maximum of 32. The default value is 1.

  • :timeout (pos_integer/0) - The default value is 30.

list_queues(context)

@spec list_queues(AzureStorage.Request.Context.t()) ::
  {:ok, %{items: list() | [], marker: String.t() | nil}} | {:error, String.t()}

This operation lists all of the queues in a given storage account.

update_message(context, queue_name, map, text, options \\ [])

Update queue item commonly use for updating queue item visibility timeout as well as queue message body

{:ok, messages} = context |> get_messages("booking-queue")
[head | tail] = messages

context |> update_message("booking-queue", head, "hello world!")

Supported options:

  • :visibilitytimeout (integer/0) - Message visibility timeout in second The default value is 0.

  • :messagettl (integer/0) - Message time to live in second The default value is 604800.

  • :timeout (pos_integer/0) - The default value is 30.