Перейти обработка сообщений pubsub, отдельная функция - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь получить сообщения от pubsub, но сейчас я немного потерян.Я хочу отделить обработчик сообщений от фактического "сборщика".В общем, я хочу сделать это:

sub := pubsubClient.Subscription("bla")
err := sub.Receive(context.Background(), handleMessage)

func handleMessage(ctx context.Context, msg *pubsub.Message) {
  fmt.Println(msg)
}

К сожалению, это не работает.Я получаю следующую ошибку: Cannot use handleMessage (type func(ctx context.Context, msg *pubsub.Message) error as type func(context.Context, *Message).

Я могу решить эту проблему следующим образом:

err := sub.Receive(context.Background(), func(ctx context.Context, msg *pubsub.Message) {
    if err := handleMessage(msg); err != nil { // individual message processing went wrong
        msg.Nack()
        return
    }
    msg.Ack()

})

Но я предпочитаю отделить фактическую функцию-обработчик.Любая помощь приветствуется.

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