去pubsub消息处理,单独的功能

时间:2018-11-22 08:32:00

标签: go google-cloud-pubsub

我正试图从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()

})

但是我更喜欢将实际的处理函数分开。任何帮助表示赞赏。

0 个答案:

没有答案