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 并按顺序等待重新投递,这可能更适合。
我正在使用 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 并按顺序等待重新投递,这可能更适合。