2017-07-19 207 views
-5

我知道Azure服務總線是一個消息傳遞系統。但是我不明白的是這如何適合CRUD應用場景。可以說我有一個Person類有一些屬性/ getter/setter方法。當用戶想要創建一個新人時,「程序」將創建一個新的人物對象並將其添加到隊列中。 「後端」代碼將如何顯示。它必須撿起這個請求並將其添加到數據庫中,但它現在如何呢?Azure服務總線C#體系結構

+0

它知道這一點,因爲你告訴它是如何工作的:)你在隊列中添加一條消息,後端拾取消息並處理它。有幾種方法可以解決這個問題:對於多種類型的操作,可以有多個隊列,一條消息可以包含它應該觸發的動作,可以使用-1(或其他任何其他db無效值)的id來指示你想添加實體...有很多選項。 –

+0

另外,您添加到隊列中的消息可以是序列化數據。我過去使用過JSON字符串,所以它們也是人類可讀的。 「監聽」該隊列中的消息的「工作人員」將反序列化該對象,並執行其設計的特定作業。 – reckface

回答

1

「後端」代碼的外觀如何。它必須撿起這個請求並將其添加到數據庫中,但它現在如何呢?

當新消息添加到隊列中時,您可以創建WebJob或Azure函數來處理隊列消息。然後,您可以反序列化消息中的對象並將其添加到數據庫。

服務總線隊列觸發器就像這樣。

public class Functions 
{ 
    public static void ProcessQueueMessage([ServiceBusTrigger("inputqueue")] string message, TextWriter logger) 
    { 
     //deserialize the object from the message and add it to database. 
    } 
} 

欲瞭解更多信息,以下鏈接供您參考。

How to use Azure Service Bus with the WebJobs SDK