gpt4 book ai didi

azure - 逻辑应用程序-如何从队列中读取批量消息

转载 作者:行者123 更新时间:2023-12-03 02:38:53 24 4
gpt4 key购买 nike

如何从队列中读取批量消息,然后将所有 json 添加到一个中

这就是我所拥有的

为了简单起见,我希望触发逻辑应用程序从队列中读取,如果有 5 条消息,那么我需要将 JSON 添加到一条消息中。例如,请参见下面(不确定这是否是正确的顺序)我发送到队列的 JSON 是:

[ { "fname":"1", "lname":"1" } ]
[ { "fname":"2", "lname":"2" } ]
[ { "fname":"3", "lname":"3" } ]
[ { "fname":"4", "lname":"4" } ]
[ { "fname":"5", "lname":"5" } ]

enter image description here

然后是预期的 JSON 输出

[
{
"fname": "1",
"lname": "1"
},
{
"fname": "2",
"lname": "2"
},
{
"fname": "3",
"lname": "3"
},
{
"fname": "4",
"lname": "4"
},
{
"fname": "5",
"lname": "5"
}
]

****************************************************更新************************************************* ******

现在我只需要发送一次电子邮件..它被发送多次..例如:而不是收到一封电子邮件[ { "fname":"1", "lname":"1"},{ "fname":"2", "lname":"2"}

我收到一封电子邮件:[ { "fname":"1", "lname":"1"} ]

然后是另一封电子邮件[ { "fname":"1", "lname":"1"},{ "fname":"2", "lname":"2"} ]

基本上我需要获取 JSON 的最终结果,以便稍后将其传递到数据库

enter image description here

最佳答案

我不知道您为什么在逻辑应用中使用“从队列中获取消息”操作。根据我的理解,您创建一个批量发送者来发送这五个消息,然后触发批量接收者。并且您希望将这五个 json 消息转换为您期望的格式。所以我在下面提供我的测试步骤供大家引用。 (在我的逻辑应用程序中,我将“消息计数”设置为“3”以便于测试)

1. 我创建了一个批量接收器触发器,下面是批量接收器下的所有操作。 enter image description here

2.然后“Foreach”循环的详细信息如下所示: enter image description here

上面截图中的表达式为:

union(variables('result'), items('For_each')['content'])

3.您最好通过点击“设置”来修改“Foreach”循环的设置,并启用“并发控制””并将“并行度”更改为“1”。 enter image description here enter image description here

4. 然后,我创建另一个逻辑应用作为批量发送程序。 enter image description here

运行这个逻辑应用(批量发送器)3次,一条一条地发送json消息。

5. 现在返回到第一个逻辑应用(批处理接收器),并检查“For every”循环的第三个循环中的 result 变量(在逻辑应用程序“运行历史记录”中)。我们可以看到如下图所示的结果: enter image description here

更新:

将步骤4(批量发送者逻辑应用)更改如下:

4.1 初始化一个名为“message”的变量,并使用“从队列中获取消息(查看锁定)”操作来获取队列中的消息。 enter image description here

4.2 使用“Foreach”循环队列中的“Body”,并使用变量“message”存储每个循环中队列的“Content”。然后将变量“message”放入批量发送器中。(请注意,我们不能直接将“内容”放入批量发送器中,因为“内容”就像一个二进制字符串,我们需要使用一个变量来存储然后放入它进入批量发送者,那么它将是 json [ { "fname":"1", "lname":"1"} ])。 enter image description here不要忘记更改此“对于每个”操作的设置,否则结果将不正确。 enter image description here

2.1 在步骤2中,请将表达式更改为

union(variables('result'), items('For_each')['content'])

union(variables('result'), json(items('For_each')['content']))

更新2:

在批处理接收器逻辑应用程序中,我初始化了一个名为“result”的变量,它用于在“Foreach”中存储每个循环的最新json值。因此,只需将“发送电子邮件(v2)”移到“对于每个”之外,然后发送带有变量“结果”作为“正文”的电子邮件。请参阅下面我的逻辑应用程序:

将“发送电子邮件(v2)”操作移到“For every”循环之外,并尝试将变量“结果”放入电子邮件的“正文”中。但在“动态内容”中找不到,请通过表达式输入。 enter image description here

此后,我们将仅收到一封来自逻辑应用的电子邮件。

关于azure - 逻辑应用程序-如何从队列中读取批量消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62195361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com