【发布时间】:2019-08-25 18:16:02
【问题描述】:
我在 google pubsub 中创建了一个 TOPIC,并在 TOPIC 中创建了一个 SUBSCRIPTION,设置如下
然后我写了一个puller in go,使用它的Receive 来拉取和确认已发布的消息
package main
import (
...
)
func main() {
ctx := context.Background()
client, err := pubsub.NewClient(ctx, config.C.Project)
if err != nil {
// do things with err
}
sub := client.Subscription(config.C.PubsubSubscription)
err := sub.Receive(ctx, func(ctx context.Context, msg *pubsub.Message) {
msg.Ack()
})
if err != context.Canceled {
logger.Error(fmt.Sprintf("Cancelled: %s", err.Error()))
}
if err != nil {
logger.Error(fmt.Sprintf("Error: %s", err.Error()))
}
}
没什么特别的,它运行良好,但过了一段时间(〜空闲 3 小时后),它停止接收新发布的消息,没有错误,什么都没有。我错过了什么吗?
【问题讨论】:
标签: go google-cloud-pubsub subscriber