📜  Microsoft Azure-队列

📅  最后修改于: 2020-11-20 05:40:04             🧑  作者: Mango


在开发人员使用的通用语言中,队列是一种数据结构,用于存储遵循先进先出规则的数据。从前端检索数据项时,可以从队列的后部插入数据项。 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 Storage Explorer管理队列

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

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

队列存储资源管理器

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

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

队列存储资源管理器