Azure eventhub отправляет несколько сообщений с плавающим массивом в python - PullRequest
0 голосов
/ 23 октября 2019

У меня есть три массива данных с плавающей точкой (A, B, C), которые я хочу отправить в концентратор событий.

Проблема здесь в том, что классы являются вложенными, и я не могу понять, как сформировать данные, чтобы иметь возможность успешно отправлять.

Вот код, который я пытаюсь

logger = logging.getLogger("azure")


ADDRESS = ""
USER = ""
KEY = ""


try:
    if not ADDRESS:
        raise ValueError("No EventHubs URL supplied.")

    # Create Event Hubs client
    client = EventHubClient(ADDRESS, debug=False, username=USER, password=KEY)
    sender = client.add_sender(partition="0")
    client.run()

    x_value = np.arange(100)
    try:
        start_time = time.time()
        for i in range(100000):
            A = np.asarray([1,2,3,4])
            B = np.asarray([2,3,4,5])
            C = np.asarray([3,4,5,6])
            message = [A, B, C]
            sender.send(EventData(body = message))
            time.sleep(1)
    except:
        raise
    finally:
        end_time = time.time()
        client.stop()
        run_time = end_time - start_time
        logger.info("Runtime: {} seconds".format(run_time))

except KeyboardInterrupt:
    pass

. Таким образом, я вижу, что у объекта 'ValueBody' ошибки нет атрибута 'append', я думаю, что по типам класс кодируетсообщение по-другому. Вместо того, чтобы отправлять одно сообщение с последовательной строкой, я хочу отправить сообщение параллельным способом и получить их примерно так:

  1. Получить одно событие с данными в виде списка [A,B, C]
  2. Получите три события A, B, C по отдельности, как при вызове трех разных объектов.

Во-вторых, я не уверен, будет ли это работать, так какЯ использую только один раздел, и при получении я могу смешать три события A, B, C, и я не хочу этого.

1 Ответ

0 голосов
/ 28 октября 2019

Я подтвердил поддержку ms, обратная связь такова: он работает только для списка строк или байтов, но не работает для списка int.

А такжеВы должны заметить, что, даже отправляя список строк, при получении списка он объединяет все элементы списка для составления одного сообщения. Например, если есть список ["a", "b", "c", "d"] для отправки, при получении он отобразит этот "abcd" как целую строку.

Я проверил это сам, приведенная выше информация верна.

Так что для вашего случая вы должны рассмотреть вопрос об изменении списка на строку или строку json. при получении вы можете отформатировать данные так, как вам нужно.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...