2017-07-19 146 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