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)
<- storage_endpoint("https://mystorage.queue.core.windows.net", key="access_key")
endp
# creating, retrieving and deleting queues
create_storage_queue(endp, "myqueue")
<- storage_queue(endp, "myqueue")
qu
<- create_storage_queue(endp, "myqueue2")
qu2 delete_storage_queue(qu2)
The queue object exposes methods for getting (reading), peeking, deleting, updating, popping (reading and deleting) and putting (writing) messages:
$put_message("Hello queue")
qu<- qu$get_message()
msg
$text
msg## [1] "Hello queue"
# get several messages at once
$get_messages(n=30) qu
The message object exposes methods for deleting and updating the message:
$update(visibility_timeout=30, text="Updated message")
msg$delete() msg
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")