我開發蔚藍2個WebJobs:這是訂閱使用同一主題的ServiceBusTrigger一個將使用主題可以將消息在服務總線隊列和另一個。微軟Azure服務總線隊列工作作爲FIFO
的消息被正確地發送到服務總線隊列,但是當運行訂閱的消息不被在FIFO基礎處理的ServiceBusTrigger的WebJob。
對於這使消息在服務總線隊列WebJob的代碼如下:
NamespaceManager namespaceManager = NamespaceManager.Create();
// Delete if exists
if (namespaceManager.TopicExists("SampleTopic"))
{
namespaceManager.DeleteTopic("SampleTopic");
}
TopicDescription td = new TopicDescription("SampleTopic");
td.SupportOrdering = true;
TopicDescription myTopic = namespaceManager.CreateTopic(td);
SubscriptionDescription myAuditSubscription = namespaceManager.CreateSubscription(myTopic.Path, "ImporterSubscription");
TopicClient topicClient = TopicClient.Create("SampleTopic");
for(int i = 1; i <= 10; i++)
{
var message = new BrokeredMessage("message"+i);
topicClient.Send(message);
}
topicClient.Close();
的WebJob其subscrited到服務總線觸發具有下面的代碼:
namespace HO.Importer.Azure.WebJob.TGZProcessor
{
public class Program
{
static void Main(string[] args)
{
JobHostConfiguration config = new JobHostConfiguration();
config.UseServiceBus();
JobHost host = new JobHost(config);
host.RunAndBlock();
}
public static void WriteLog([ServiceBusTrigger("SampleTopic", "ImporterSubscription")] string message,
TextWriter logger)
{
Console.WriteLine(message));
}
}
}
我怎樣才能實現從FIFO隊列中處理消息?
在此先感謝!
謝謝!我需要做的是在上傳到容器時處理blob。其中一個必要條件是,它們需要按照到達blob的順序進行處理,所以我認爲通知設置爲支持排序的服務總線隊列可以解決問題。 –
根據blob如何到達,您可以構建自定義邏輯來實現此目的。如果你確實知道blob順序存在,爲什麼不使用blob觸發器呢? –