如何构建应用程序引擎以及使用 Windows Azure Storage 实现异步消息传送
在实际情况下,您可能会从进程外状态(例如会话存储、缓存或窗体发布)获得购物车。为了简化本文代码,我们仅仅构建了购物车的内容。 最后,购物车内容已处于队列中,我们可以修改工作者角色,以便它可以定期检查队列中挂起的购物车。它每次会从队列中选择一个购物车,用整整一分钟对该购物车进行处理,然后向用户通知队列提交一个消息,告知用户已经对该购物车进行了处理(请参见图 10)。 图 10 检查队列中挂起的购物车 经过对用户通知表中的队列消息的存取操作,位于主页面中的 jQuery Gritter 代码然后会在下一个 15 秒的轮询周期中检测是否存在新消息,然后向用户显示购物车 toast 通知。 总结和后续操作 本文的目的是使开发人员可以抛开其有形的数据中心这条“安全毛毯”,认识到他们可以使用 Windows Azure 执行很多操作,而不仅仅是创建简单的“Hello World”网站。借助 Windows Azure Queues 和 Windows Azure 表存储的强大功能,以及利用这些强大功能在应用程序和其工作者角色之间进行异步消息传送,您可以真正使用 Windows Azure 增强应用程序的引擎了。 为使文章简明易懂,我们将很多代码都保留为原样,没有进行重构。作为熟悉新 Windows Azure Muscle 的练习,请尝试重构本文中的一些代码,以加深对队列的熟练使用,甚至创建一个独立的程序集,其中包含为任何 ASP.NET MVC 网站进行异步消息传送和通知所需的所有代码。 主要是亲自动手实践,创建一些站点并看看您都可以执行哪些操作。本文中的代码位于 Hollywood Hackers 的 CodePlex 站点中。private void ProcessShoppingCarts()
{
CloudQueueMessage cqm = cartQueue.GetMessage();
while (cqm != null)
{
ShoppingCartMessage cart =
QueueMessageBase.FromMessageShoppingCartMessage>(cqm);
toastRepository.AddNotification(new UserTextNotification()
{
MessageText = String.Format
(Your shopping cart containing {0} items has been processed.,
cart.CartItems.Length),
MessageDate = DateTime.Now,
TargetUserName = cart.UserName
});
cartQueue.DeleteMessage(cqm);
cqm = cartQueue.GetMessage();
}
}
实现 Storage 异步 消息 传送 Azure Windows 应用程序 相关文章:
- 3DES算法的FPGA高速实现(06-21)
- 基于DSP的Max-Log-MAP算法实现与优化(05-27)
- DSP中DMA操作的无阻塞请求实现(06-18)
- 二维DCT编码的DSP实现与优化(09-08)
- 基于DSP处理器上并行实现ATR算法(01-29)
- 基于DSP的H.324终端设计(05-27)
