云模式:为 Windows Azure 设计和部署服务
2010-03-26 00:00:00 来源:WEB开发网QueueManager 类将使用配置提供的定义初始化队列:
CloudQueueClient queueClient =
CloudStorageAccount.FromConfigurationSetting(
"DataConnectionString").CreateCloudQueueClient();
accountTransQueue = queueClient.GetQueueReference(
Helpers.Queues.AccountTransactionsQueue);
accountTransQueue.CreateIfNotExist();
loggQueue = queueClient.GetQueueReference(
Helpers.Queues.AccountTransactionLoggQueue);
loggQueue.CreateIfNotExist();
AccountStorageWorker 侦听有关 AccountTransactionQueue 的消息并获取队列中的消息。要侦听消息,工作人员必须打开正确的队列:
var storageAccount = CloudStorageAccount.FromConfigurationSetting(
"DataConnectionString");
// initialize queue storage
CloudQueueClient queueStorage = storageAccount.CreateCloudQueueClient();
accountTransactionQueue = queueStorage.GetQueueReference(
Helpers.Queues.AccountTransactionsQueue);
在打开队列并且 AccountStorageWorker 读取消息后,该消息将在队列中保持 20 秒(可见性超时设置为 20 秒)的不可见状态。在这段时间内,工作人员将尝试处理该消息。
如果消息处理成功,则会从队列中删除该消息。如果处理失败,会将该消息放回队列中。
处理消息
ProcessMessage 方法首先需要获取消息的内容。这可以通过两种方法实现。第一种方法是,可以将消息作为字符串存储在队列中:
更多精彩
赞助商链接