Windows Azure入门:使用Queue Storage
2010-05-17 00:00:00 来源:WEB开发网static void Main(string[] args)
{
var storageAccount = CloudStorageAccount.DevelopmentStorageAccount;
var queueStorage = storageAccount.CreateCloudQueueClient();
// 检查名为helloworldqueue的队列是否被创建,如果没有,创建它
var queue = queueStorage.GetQueueReference("helloworldqueue");
queue.CreateIfNotExist();
Console.WriteLine("Server is running...");
while (true)
{
// 从队列中读取一条信息
// 收到信息后可以根据收到的信息做处理,为了演示方便我们这里只是把信息显示出来
// 在云端发送消息后这条消息将对于后续的请求不可见,但是并未被删除。我们需要显示删除它。
// 否则在一段时间后该消息将重新可见。这一设计的好处是确保了所有消息都能够被处理。
// 如果程序在收到消息后处理消息前就异常终止了那么数据依然在一段时间后可以被重新处理。
// 详情请参考MSDN文档
var message = queue.GetMessage();
if (message != null)
{
Console.WriteLine(string.Format("Message retrieved: {0}", message.AsString));
// 处理完数据后必须显示删除消息
queue.DeleteMessage(message);
}
// 每次读取数据后线程休息3秒
Thread.Sleep(3000);
}
步骤四:观察并分析代码
步骤三中的代码中,首先我们通过CloudStorageAccount.DevelopmentStorageAccount来说明我们使用的本地的Development Storage自带账户而不是真正的云端存储服务账户。(如果要用真实账户可以使用
CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=[用户名];AccountKey=[密码]");
//DefaultEndpointsProtocol=https可以改成DefaultEndpointsProtocol=http表示用HTTP而不是HTTPS
来实例化对象)然后通过该账户类来实例化一个Queue客户端类。这两步是使用SDK中StorageClient程序集来调用Queue Storage服务的必要步骤。
Client项目中的代码相对简单。大约每隔3秒向Queue Storage中插入一条数据。Server端的项目中我们则大约每隔3秒从Queue Storage中读取一条数据。处理完毕后将之删除。对于为什么必须在读取后显示删除的问题请参考注释部分。
步骤五:运行程序
先运行Client程序然后运行Server个程序。如果一切正常,你将会看到Server项目的Console程序输出收到的消息:
注意由于是本地模拟,Client和Server程序需要要在同一台机器上运行。但是如果使用真实账户的话,Client和Server程序就可以跨越机器进行通信了。
更多精彩
赞助商链接