python - Google PubSub 如何在流式拉取消息时处理搜索到的消息
问题描述
我正在尝试处理seek(timestamp)
Python 返回的消息。
我使用流式拉取订阅了非搜索消息:
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):
msg.ack()
我找到了SeekRequest
对象:
https://googleapis.dev/python/pubsub/2.4.0/types.html
我期待seek()
通过流式拉取再次接收重播的消息。然而,取而代之的是一个SeekResponse
对象。
是否可以通过流式拉取回调将搜索到的消息转移到到达?
解决方案
搜索响应不包含任何消息。事实上,这是一个空洞的回应。RPC 有响应,因此您可以知道查找是否有任何错误,例如在不存在的订阅上执行。Seek 导致重播的消息以与常规传递相同的路径作为消息重新传递给订阅者,例如,再次通过流式拉取接收它们。
推荐阅读
- unix - 如何在unix中循环列出文件
- publish-subscribe - PubSubHubbub 中 hub.lease_seconds 的最大值
- mongodb - 使用 Compass MongoDB 将 JSON 导入 MongoDB
- python - 如何根据不直接出现在句子中的关键字找到相似的句子?
- compiler-construction - 三个地址码的数据结构
- azure-devops - 当给定团队的人员在 DevOps 中创建拉取请求时,如何添加必需的审阅者?
- powershell - 使用 PowerShell 命令 Start-Process 安装 msi 时,出现 Exit-code 1603 错误
- python - 尽管已安装,但没有找到“kivy”模块
- python - 从 React 应用程序将 excel 文件上传到 FastAPI
- pseudocode - 我对这个伪代码的理解正确吗?如果是这样,我如何计算它的大θ?