Microsoft Azure – 队列
Microsoft Azure – 队列
在开发人员使用的通用语言中,队列是一种数据结构,用于存储遵循先进先出规则的数据。数据项可以从队列的后面插入,而从前面检索。Azure 队列是一个非常相似的概念,用于将消息存储在队列中。发送方发送消息,客户端接收并处理它们。一条消息几乎没有附加属性,例如到期时间。
客户端通常处理和删除消息。Windows Azure 服务允许将消息存储 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
检索队列
$QueueName = "thisisaqueue" $Queue = Get-AzureStorageQueue –Name $QueueName –Context $Ctx
删除队列
$QueueName = "thisisaqueue" Remove-AzureStorageQueue –Name $QueueName –Context $Ctx
将消息插入队列
第 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 – 您可以通过从左侧面板中选择“队列”并单击“新建”来添加新队列,如下图所示。
步骤 3 – 输入队列的名称,它是在您的存储帐户中创建的。
步骤 4 – 通过在左侧面板中选择队列来添加和删除消息。