4
我目前正在試用Google Cloud PubSub的go library並同時查閱文檔。Go酒吧子庫中的PullWait行爲?
我的代碼測試PullWait
函數,根據documentation做以下行爲:
PullWait從訂閱拉消息。如果訂閱隊列中沒有足夠的消息,它將會阻塞,直到至少n條消息到達或發生超時,並且n不能大於100.
但是,我的測試表明,無論指定的值n
,我總是立即收到m
消息,其中m < = n。我在這裏錯過了什麼嗎?
摘錄的代碼中使用:
msgs, err := pubsub.PullWait(subCtx, subscriptionName, 50)
if err != nil {
log.Printf("Error when trying to pull messages from subscription: %v", err)
} else {
for _, msg := range msgs {
str := string(msg.Data)
log.Printf("Message [msg-id=%s]: '%v'", msg.ID, str)
if err := pubsub.Ack(ctx, subscriptionName, msg.AckID); err != nil {
log.Printf("Unable to acknowledge message [ack-id=%s]: %v", msg.AckID, err)
}
}
}
,並在時間隊列只包含一個消息,該消息被rightaway返回到我:
2015年11月4日11點45分十五秒消息[msg-id = 2384294654226]:'你好我的世界我的朋友'