Python Google PubSub 设置 subscribe() 的确认截止日期

Python Google PubSub set the acknowledge deadline from subscribe()

我正在使用 subscribe()(下方)订阅数据。

有时我收到的消息乱七八糟,我忽略了它们,希望它们能够重新发送 'soon'。

有没有办法从 subscribe() 设置 ackDeadline?我只能看到它适用于 streaming_pull().

代码:

subscriber = pubsub_v1.SubscriberClient()
subscription_path = subscriber.subscription_path(project_id, subscription_id )
streaming_pull_future = subscriber.subscribe(subscription_path, callback=callback)

您似乎想延迟邮件的重新投递,以便您可以在将来的某个时间处理它。如果是这种情况,您要做的是为您的订阅设置重试策略(请参阅 subscription properties 中的“重试策略”)。这将导致 Cloud Pub/Sub 以指数方式回退 nacked 消息的传递。然后,在回调的代码中,您可以通过调用 message.nack().

来取消消息

请注意,Cloud Pub/Sub 确实提供 ordered delivery,如果您想按顺序处理消息而不是 nack 并按顺序等待重新投递,这可能更适合。