我試圖解決在Azure服務總線上創建多個隊列(即每月一個隊列)的問題。隊列中的消息包含有關客戶賬單的信息。隊列創建這樣的:在創建隊列從多個具有工作角色的動態隊列接收Azure服務總線消息
/// <summary>
/// Creates a new queue on Azure Service Bus
/// </summary>
/// <param name="queueName">string</param>
/// <returns>string (name of created queue)</returns>
public string CreateNewQueue(string queueName)
{
try
{
NamespaceManager manager = NamespaceManager.Create();
if (!manager.QueueExists(queueName))
{
manager.CreateQueue(queueName);
return queueName;
}
return string.Empty;
}
catch (Exception e)
{
Logging.Instance.Fatal(e.ToString());
return string.Empty;
}
}
後,與計費信息(僅比林斯的數據庫ID,雖然)約3.000消息添加到隊列中。
爲了處理隊列,我想使用Azure Worker角色。我創建了一個Azure服務項目並將一個Worker Role with Service Bus Queue
輔助角色添加到項目中。
現在,在Worker角色的Run()
方法,「只有」一個隊列使用(從示例代碼獲取):
// The name of your queue
const string QueueName = "ProcessingQueue";
我已經得到了我的工作對一個感覺在這裏通過爲每個計費任務創建一個新的隊列來達到這個標準:-)然而,當然需要一個新的隊列,因爲每個月跟蹤每個計費任務至關重要。
有什麼辦法可以將工作者角色與前面提到的動態創建的隊列相結合?
在此先感謝。
謝謝你的建議,尼克。我們將任務存儲在數據庫中,併爲每個添加了創建任務ID的任務創建一個新的隊列。 I.e .:「billingTask1」,其中1是ID。目前正在測試它,它似乎按照我們的願望工作。但是,我們完全跳過了工作者角色的使用,只是簡單地拉動了整個隊列,並開始使用'Message.Complete()'和'Message.Abandon()'處理帳單。 –