【发布时间】:2021-06-18 15:35:39
【问题描述】:
我正在接收来自我创建的订阅的消息:
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 条消息(订阅存在)。我认为他们没有收到,但由于最小化的日志记录,我无法确认。无论如何,我需要恢复这些消息。
我读了这个页面:
https://cloud.google.com/pubsub/docs/replay-overview
不幸的是我的订阅没有设置retain_acked_messages=true。
我有两个问题:
-
检索这些丢失消息的最简单方法是什么?我知道他们会发生的时间段。是否可以指示服务使用时间戳重播它们?
-
我应该对我的订阅进行任何更改以应对未来的问题吗?我应该在启动时创建快照吗?
【问题讨论】:
标签: python google-cloud-platform google-cloud-pubsub