Azure 基础:Queue Storage

前端之家收集整理的这篇文章主要介绍了Azure 基础:Queue Storage前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

解决方案,当前支持的存储类型有 Blob、Queue、File 和 Table。

301dd0e9a0e2718c58c330242e129f0.png" alt="">

中介绍了 File Storage 的基本用法,本文将介绍 Queue Storage 的主要使用方法。

Azure Queue Storage的结构

http://.queue.core.windows.net/

http://nickstorage.queue.core.windows.net/app1tasks

中的介绍,这里就不重复了。

代码执行的结果,本文使用了 MS 发布的一个 Azure Storage 客户端工具:,文中简称为 Storage Explorer。下面是 Queue Storage 的一个截图:

代码来介绍如何操作 Queue Storage。

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(<span style="color: #008000">// <span style="color: #008000">CloudQueueClient 类是 Windows Azure Queue Service 客户端的逻辑表示,我们需要使用它来配置和执行对 Queue Storage 的操作。
CloudQueueClient queueClient =<span style="color: #000000"> storageAccount.CreateCloudQueueClient();
<span style="color: #008000">//
<span style="color: #008000">CloudQueue 表示一个 Queue 对象,绝大多数的操作都是通过这个对象完成的。

CloudQueue queue = queueClient.GetQueueReference(<span style="color: #800000">"
<span style="color: #800000">app2tasks
<span style="color: #800000">"<span style="color: #000000">);
<span style="color: #008000">// <span style="color: #008000">如果不存在就创建名称为 "app2tasks" 的 Queue。
queue.CreateIfNotExists();

代码,然后在 Storage Explorer 中查看结果:

把消息插入 Queue

current = CloudQueueMessage message = CloudQueueMessage( +

调用几次上面的代码看看结果如何:

调用向 Queue 中加入了三条消息,请注意插入它们的时间,分别是 11:33:45,11:33:57,和 11.34:16。在接下来的描述中我分别称它们为第一条消息、第二条消息和第三条消息。

查看 Queue 中的消息

CloudQueueMessage peekedMessage =

方法总是取到处于队头位置的那条消息,并且不改变队列的状态!

方法的内涵,笔者从网上找了一张解释 peek 一词的图片,请注意图片中的黄色线条:

图片来自于互联网,如有版权问题请与笔者联系。)

查看 Queue 的长度

获取 Queue 的属性 ? cachedMessageCount = queue.ApproximateMessageCount;

更新 Queue 中的消息

添加到 Queue 中了,但是又需要更新其内容该怎么办?我们可以找到这条消息然后更新它的内容

CloudQueueMessage message = message.SetMessageContent(|内容的60s 之后,该消息会重新可见,但是是在队尾。

代码后,我们发现在 Storage Explorer 中"第一条消息"不见了。过了 60 秒之后它又重新出现在 Storage Explorer 中,但是它的内容已经变化,位置也成了队尾:

处理 Queue 中的消息

方法取出队头的消息,此时该消息会在 Queue 中 30 秒不可见(这个时常用户可以设置,默认是 30 秒);调用 Delete 方法删除消息;调用 Delete 方法),此消息会在 30 秒后重新出现在队尾。代码逻辑:

CloudQueueMessage message =删除这条消息,它会重新出现在队尾。 删除这条消息 { }

删除 Queue 中的消息

删除,我们也可以找到一条消息,直接删除它。本质上和处理完再删除是一样的。

总结

解决方式。使得消息的产生者和消息的处理者可以互相不知道彼此的存在。为我们处理这类问题添加了一件有力的武器。

猜你在找的Azure相关文章