Сообщение об ошибке во время чтения или записи в разделах - PullRequest
1 голос
/ 06 ноября 2019

Как вы регистрируете сообщения об ошибках при чтении или записи в тему. Мы будем использовать Apache Beam API для чтения или записи в тему. Поэтому у меня возникает любое исключение, как мы это регистрируем. Могу ли я отправить свои данные в другую тему?

PubsubIO.writeMessages () PubsubIO.readMessages ()

Могу ли я написать этот DoFn и добавить журналы отладки log.debug ("Публикация сообщения json в pubsub")тема");PubsubIO.Write message = PubsubIO.writeMessages (). To (pipelineOptions.getPubsubEnpEventTopic ());log.debug («Сообщение опубликовано на pubsub»);

1 Ответ

0 голосов
/ 12 ноября 2019

Существует два метода 'withCoderAndParseFn' при чтении из pubsub и 'withFormatFn' при записи в pubsub. Эти функции полезны для разбора сообщений во время чтения или записи. Возможно, вы можете использовать их, применяя свою собственную логику, например, вход в стекдрайвер или отправку данных об ошибках в pubsub.

Подробнее вы можете найти здесь https://www.codota.com/web/assistant/code/rs/5c6563f8138b620001f3aa7c#L470

PubsubIO.<t>read().withCoderAndParseFn(coder, new ParsePayloadUsingCoder<>(coder));

private static class ParsePayloadUsingCoder<t> extends SimpleFunction<pubsubmessage, t=""> {
    private Coder<t> coder;

    public ParsePayloadUsingCoder(Coder<t> coder) {
      this.coder = coder;
    }

    @Override
    public T apply(PubsubMessage input) {
      try {
        return CoderUtils.decodeFromByteArray(coder, input.getPayload());
      } catch (CoderException e) {
        throw new RuntimeException("Could not decode Pubsub message", e);
      }
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...