Обработка нескольких сообщений из центра IoT в одном сеансе функции C # Azure - PullRequest
1 голос
/ 23 апреля 2019

Мне нужно обрабатывать сообщения от устройств IoT, и пока у меня все в порядке с рабочим процессом (устройство IoT отправляет сообщение в IoT Hub, и функция Azure, запускаемая IoT Hub, обрабатывает сообщение и сохраняет информацию в Azure SQL). Но теперь у меня есть устройство, которое отправляет всю информацию в виде двух отдельных сообщений подряд (из-за объема информации). Есть ли решение о том, как обрабатывать эти два отдельных сообщения одновременно? (Каждый тип сообщения имеет уникальный идентификатор, поэтому я знаю, какое сообщение является первой частью информации, а какое - второй)

1 Ответ

2 голосов
/ 23 апреля 2019

Можно ли загрузить его в виде файла в хранилище BLOB-объектов, назначенное для IoT Hub, и с помощью метода DeviceClient UploadBlobAsync?Таким образом, вы можете прикрепить функцию Azure к , когда новый файл появится в контейнере для хранения больших двоичных объектов.Это может быть одним из способов.

Если вам не нравится решение для загрузки файлов, вы должны учитывать, что функции Azure не имеют состояния, и если вам нужно объединить два сообщения, чтобы получить одну информацию на стороне облака, выпотребуется где-то сохранить состояние и проверить оттуда.

Кроме того, надежность здесь также должна быть рассмотрена, прежде чем принимать решение, является ли AF подходящим сервисом для обработки потока в данном конкретном случае.Например: может ли быть так, что первое сообщение приходит, и соединение разрывается до того, как второе сообщение поступает в IoT Hub.И можете ли вы быть уверены, что сообщения всегда будут в порядке?

...