Python Googlr PubSub请求消息(即使已确认)?
我正在从我使用以下方式创建的订阅接收邮件:Python Googlr PubSub请求消息(即使已确认)?,python,google-cloud-platform,google-cloud-pubsub,Python,Google Cloud Platform,Google Cloud Pubsub,我正在从我使用以下方式创建的订阅接收邮件: subscriber = pubsub_v1.SubscriberClient(credentials=credentials) subscriber.create_subscription(name=subscription_name,topic=topic_name, ack_deadline_seconds=60) 我正在使用此接收: subscriber = pubsub_v1.SubscriberClient() subscription_
subscriber = pubsub_v1.SubscriberClient(credentials=credentials)
subscriber.create_subscription(name=subscription_name,topic=topic_name, ack_deadline_seconds=60)
我正在使用此接收:
subscriber = pubsub_v1.SubscriberClient()
subscription_path = subscriber.subscription_path(project_id, subscription_id)
future = subscriber.subscribe(subscription_path, callback=callback())
with subscriber:
try:
future.result()
except TimeoutError:
future.cancel()
def callback(msg):
my_logic(msg)
msg.ack()
虽然我在回调结束时确认,但我错过了发布者发出的前600条消息(订阅已存在)。我认为没有收到,但由于日志记录减少,我无法确认。无论如何,我需要恢复这些消息
我读了这一页:
不幸的是,我的订阅没有设置retain\u acked\u messages=true
我有两个问题:
如果未保留已确认的消息,则无法查找PubSub订阅并重播过去的确认消息 快照非常好,特别是对于测试(可重放性)或在生产中发布新版本之前(出现错误时回滚)
依我看,在你的情况下,保留确认信息是很重要的。如果您的用例是重播已确认的消息,则当您有此参数时,快照不太有用。谢谢您的回答。我将消息存储到数据库超过一周(一周后这是一个新的系列),我需要确保不会错过任何消息。我不热衷于寻找,因为它需要知道时间段。我认为从自动化的角度来看,这可能很难实现。我认为这对手动更正很好,但需要做很多工作。我最初的感觉是,自动更正快照可能更好?用法不一样。快照是在某个时间点拍摄,查找并回放时间和消息。快照之后,所有新消息都不包括在其中。seek还考虑了新消息。所有这些都取决于您的用例。