如何从azure服务总线主题订阅接收JSON对象

时间:2017-02-02 15:46:22

标签: json azure c#-4.0 azureservicebus azure-servicebus-topics

我怀疑是否要从主题订阅中实现azure服务总线接收消息。 我们在组织中使用多个应用程序,我们需要在一个子系统之间共享数据,以便我们使用azure服务总线。这里有一个应用程序经常向服务总线主题订阅发送消息。每当用户配置文件数据将数据发送到相应的服务总线主题订阅时,每当在我们的应用程序中创建新用户帐户时。我在下面提到了我必须接收JSON对象的快照。消息存储为JSON对象。

enter image description here

JSON对象:

{ “ID”: “N322333”, “名字”: “adsdddd”, “姓氏”: “asddd”, “电子邮件”: “hello@gmail.com123ZXc”, “emailVerified”:假 “DATEOFBIRTH”: “2016年8月3日”, “登陆”: “qqqqqqqqqq”, “密码”: “通过@ 1234”, “HOMEPHONE”: “233322”, “mobilePhone”: “1111111122asdf”, “办公电话”: “22222”, “性别”:1, “centerId”: “I23642”, “用户类型”: “学生”, “staffRole”:NULL, “staffActive”:假}

现在我将接收那些我已经发送到azure服务总线主题订阅队列的JSON对象,然后再转到deadletter。 JSON对象可以存储在订阅上的JSON对象列表中。我搜索了许多我无法找到合适解决方案的例子。请让我分享您的建议我如何收到JSON对象列表?我会等你的回复。

此致

Parthiban。

1 个答案:

答案 0 :(得分:0)

BrokeredMessage的有效负载是应用程序的唯一业务。您可以控制在邮件中发送的内容。如果可以,您可以将JSON对象作为单个有效负载发送到单个代理消息中并处理该列表。

如果您询问如何检索多条消息并合并到一个列表中,那么现在有两个方面

  1. 技术:如何接收多条消息
  2. 逻辑+技术:如何聚合多条消息,并在逻辑上知道列表何时是要处理的完整列表。
  3. 第一项并不困难,您可以使用.ReceiveBatchAsync()

    批量接收消息

    第二项真正取决于您的实施。如果您需要汇总这些个人消息并处理列表,您必须回答诸如构成列表的消息数量,是否有时间段,以及在这些消息到达时如何以及在何处存储这些消息的问题。也许你只是存储这些消息,而一个单独的进程通过在一段时间内构建一个列表等来进行处理。

    一句话 - 从图像看起来你的所有邮件都有相同的ID。因为切断了很难看到它。这是一个很好的实践