Skip to content
This repository has been archived by the owner on Dec 15, 2023. It is now read-only.
/ AzureQstor Public archive

R interface to Azure queue storage

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

Azure/AzureQstor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

218afec · Jan 12, 2021

History

28 Commits
Oct 15, 2020
May 27, 2020
Oct 15, 2020
Apr 6, 2020
Oct 15, 2020
Oct 15, 2020
Jan 4, 2020
Apr 5, 2020
Jan 12, 2021
Jan 4, 2020
Jan 4, 2020
Apr 6, 2020
Oct 15, 2020
Oct 15, 2020
Dec 12, 2019

AzureQstor

CRAN Downloads R-CMD-check

An R interface to Azure queue storage, building on the functionality provided by AzureStor.

The primary repo for this package is at https://github.com/Azure/AzureQstor; please submit issues and PRs there. It is also mirrored at the Cloudyr org at https://github.com/cloudyr/AzureQstor. You can install the development version of the package with devtools::install_github("Azure/AzureQstor").

Azure queue storage is a service for storing large numbers of messages that can be accessed from anywhere in the world via authenticated calls using HTTP or HTTPS. A single queue message can be up to 64 KB in size, and a queue can contain millions of messages, up to the total capacity limit of a storage account. Queue storage is often used to create a backlog of work to process asynchronously.

AzureQstor uses a combination of S3 and R6 classes. The queue endpoint is an S3 object for compatibility with AzureStor, while R6 classes are used to represent queues and messages.

library(AzureQstor)

endp <- storage_endpoint("https://mystorage.queue.core.windows.net", key="access_key")

# creating, retrieving and deleting queues
create_storage_queue(endp, "myqueue")
qu <- storage_queue(endp, "myqueue")

qu2 <- create_storage_queue(endp, "myqueue2")
delete_storage_queue(qu2)

The queue object exposes methods for getting (reading), peeking, deleting, updating, popping (reading and deleting) and putting (writing) messages:

qu$put_message("Hello queue")
msg <- qu$get_message()

msg$text
## [1] "Hello queue"

# get several messages at once
qu$get_messages(n=30)

The message object exposes methods for deleting and updating the message:

msg$update(visibility_timeout=30, text="Updated message")
msg$delete()

You can get and set metadata for a queue with the AzureStor get/set_storage_metadata generics:

get_storage_metadata(qu)
set_storage_metadata(qu, name1="value1", name2="value2")