我正在使用Azure IoT Edge在管道中发送一些消息。我已经设置了一个自定义终结点(例如, GenericEndpoint ),该终结点会将消息发送/放置到Azure Blob存储中。我正在使用一条路线将设备消息推送到特定的端点 GenericEndpoint 。
GenericEndpoint 的批处理频率设置为60秒。因此,在指定的容器中,一批次将创建一个包含一些消息的单个文件。
可以说,特定容器中的单个blob批处理文件(例如, blobX )中有 N 条消息。如果我取每个消息i的 IoTHub.EnqueuedTime (i)和 blobX 中的“创建时间”的平均值, em>,并将其命名为 AVG ,我得到:
我认为,这基本上给了我这些 N 消息在被写入blob存储之前在iothub中花费的平均时间。现在我在这里观察到的是,如果 p 和 q 分别是用 blobX 编写的第一条消息和最后一条消息,则
但是由于批处理间隔设置为60秒,因此我希望这个平均值或 AVG 大约为30秒。因为,如果消息一到达就立即写入,则每个批处理文件的平均时间将接近30秒。
但是在我的情况下, AVG ≈90秒,这表明消息在被考虑用于特定批次之前至少等待大约一个批处理间隔(在这种情况下为60秒)。
假设:将一批消息写入blob文件时,它们会一次全部写入。
我的问题:
此间隔间隔是故意的还是60秒?如果是,那么我认为它将在更改批处理间隔(例如说100秒)时发生变化。
如果不是,那么通常是否需要60秒才能在iothub中处理消息,然后通过路由将其发送到自定义端点?还是我从一个完全错误的角度来看这个?
如果我的问题似乎令人困惑,我事先表示歉意。