Microsoft Azure - 队列



在开发人员常用的语言中,队列是一种用于存储数据的结构,它遵循先进先出规则。数据项可以从队列的后端插入,而从前端检索。Azure 队列是一个非常相似的概念,用于在队列中存储消息。发送者发送消息,客户端接收并处理它们。消息有一些附加的属性,例如过期时间。

客户端通常处理并删除消息。Windows Azure 服务允许消息存储 7 天,如果客户端未删除,则 7 天后会自动删除。可以有一个发送者和一个客户端,或一个发送者和多个客户端,或多个发送者和多个客户端。

Windows Azure 提供两种消息队列服务。本章介绍 Windows Azure 队列。另一项服务称为“服务总线队列”。

解耦组件是消息队列服务的优势之一。它在异步环境中运行,消息可以在应用程序的不同组件之间发送。因此,它为管理工作流和任务提供了有效的解决方案。例如,完成任务的消息从应用程序的前端发送,并由后端工作程序接收,然后后端工作程序完成任务并删除消息。

注意事项

存储队列中的消息不会复制到任何地方,这意味着您的消息只有一份副本。可以处理的消息最大数量为 20,000 条。消息的最大大小可以是 64 kb。

使用 PowerShell 管理队列

创建队列

步骤 1 - 右键单击任务栏中的 Windows PowerShell。选择“以管理员身份运行 ISE”。

步骤 2 - 运行以下命令以访问您的帐户。请将突出显示的部分替换为您的帐户。

$context = New-AzureStorageContext -StorageAccountName tutorialspoint StorageAccountKey 
iUZNeeJD+ChFHt9XHL6D5rkKFWjzyW4FhV0iLyvweDi+Xtzfy76juPzJ+mWtDmbqCWjsu/nr+1pqBJj rdOO2+A==

步骤 3 - 指定要在其中创建队列的存储帐户。

Set-AzureSubscription –SubscriptionName "BizSpark" -CurrentStorageAccount tutorialspoint 

步骤 4 - 创建队列。

$QueueName = "thisisaqueue" 
$Queue = New-AzureStorageQueue –Name $QueueName -Context $Ctx 

Create a Queue

检索队列

$QueueName = "thisisaqueue" 

$Queue = Get-AzureStorageQueue –Name $QueueName –Context $Ctx

删除队列

$QueueName = "thisisaqueue" 

Remove-AzureStorageQueue –Name $QueueName –Context $Ctx

Delete a Queue

将消息插入队列

步骤 1 - 登录到您的帐户。

$context = New-AzureStorageContext -StorageAccountName tutorialspoint StorageAccountKey 

iUZNeeJD+ChFHt9XHL6D5rkKFWjzyW4FhV0iLyvweDi+Xtzfy76juPzJ+mWtDmbqCWjsu/nr+1pqBJj rdOO2+A==

步骤 2 - 指定要使用的存储帐户。

Set-AzureSubscription –SubscriptionName "BizSpark" -CurrentStorageAccount tutorialspoint

步骤 3 - 检索队列,然后插入消息。

$QueueName = "myqueue" 
$Queue = Get-AzureStorageQueue -Name $QueueName -Context $ctx 

if ($Queue -ne $null) {  
   $QueueMessage = New-Object -TypeName Microsoft.WindowsAzure.Storage.Queue.CloudQueueMessage
      -ArgumentList "my message is this"  
   $Queue.CloudQueue.AddMessage($QueueMessage) 
}

上面脚本中的“if”条件检查指定的队列是否存在。

从队列中出队下一条消息

步骤 1 - 首先连接到您的帐户并指定存储帐户,方法是运行上述步骤中所示的命令。

步骤 2 - 检索队列。

$QueueName = "myqueue" 
$Queue = Get-AzureStorageQueue -Name $QueueName -Context $ctx 
$InvisibleTimeout = [System.TimeSpan]::FromSeconds(10)

步骤 3 - 出队下一条消息。

$QueueMessage = $Queue.CloudQueue.GetMessage($InvisibleTimeout)

步骤 4 - 删除出队的消息。

$Queue.CloudQueue.DeleteMessage($QueueMessage)

使用 Azure 存储资源管理器管理队列

步骤 1 - 从右上角的下拉列表中选择存储帐户。如果您在之前的使用过程中添加了帐户,则会显示这些帐户。如果没有,您可以添加帐户,系统会要求您提供凭据。登录后,您将登录到 Azure 存储资源管理器中的帐户。

步骤 2 - 您可以通过从左侧面板中选择“队列”并单击“新建”来添加新队列,如下面的图像所示。

Queue Storage Explorer

步骤 3 - 输入队列的名称,它将在您的存储帐户中创建。

步骤 4 - 通过在左侧面板中选择队列来添加和删除消息。

Queue Storage Explorer
广告