我在 google pubsub 中创建了一个 TOPIC,并在 TOPIC 中创建了一个 SUBSCRIPTION,具有以下设置
然后我在 go 中编写了一个puller,使用它的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 小时后),它停止接收新发布的消息,没有错误,什么都没有。我错过了什么吗?
