在开发人员使用的通用语言中,队列是用于存储遵循先入先出规则的数据的数据结构.从前面检索数据项时,可以从队列后面插入数据项. Azure队列是一个非常相似的概念,用于将消息存储在队列中.发件人发送邮件,客户端接收并处理它们.消息附加了很少的属性,例如到期时间.
客户端通常处理和删除消息. Windows Azure服务允许将邮件存储7天,如果邮件未被客户端删除,则会自动删除.可以有一个发件人和一个客户端或一个发件人和许多客户端或许多发件人和许多客户端.
Windows Azure为邮件队列提供了两种服务.本章介绍Windows Azure队列.另一项服务称为"服务总线队列".
解耦组件是消息队列服务的优势之一.它在异步环境中运行,可以在应用程序的不同组件之间发送消息.因此,它为管理工作流程和任务提供了有效的解决方案.例如,完成任务的消息从应用程序的前端发送,并由后端工作人员接收,后端工作人员然后完成任务并删除消息.
注意事项
存储队列中的消息不会在任何地方复制,这意味着只有一个消息副本.可以处理的最大消息数为20,000.消息的最大大小可以是64 kb.
使用PowerShell管理队列
创建队列
第1步 : 右键单击任务栏中的Windows PowerShell.选择"以管理员身份运行ISE".
第2步 : 运行以下命令以访问您的帐户.请替换您帐户的突出显示部分.
$context = New-AzureStorageContext -StorageAccountName IT屋 StorageAccountKey iUZNeeJD+ChFHt9XHL6D5rkKFWjzyW4FhV0iLyvweDi+Xtzfy76juPzJ+mWtDmbqCWjsu/nr+1pqBJj rdOO2+A==
第3步 : 指定要在其中创建队列的存储帐户.
Set-AzureSubscription –SubscriptionName "BizSpark" -CurrentStorageAccount it1352 Set-AzureSubscription -SubscriptionName"BizSpark"-CurrentStorageAccount it1352
第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 IT屋 StorageAccountKey iUZNeeJD+ChFHt9XHL6D5rkKFWjzyW4FhV0iLyvweDi+Xtzfy76juPzJ+mWtDmbqCWjsu/nr+1pqBJj rdOO2+A==
第2步 : 指定要使用的存储帐户.
Set-AzureSubscription –SubscriptionName "BizSpark" -CurrentStorageAccount it1352
第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 : 通过在左侧面板中选择队列来添加和删除消息.