我在一些示例代码中看到了似乎直接从主题读取的代码?
PubsubIO.readStrings().fromTopic(fullTopic))
那和之间有区别吗
PubsubIO.readStrings().fromSubscription(fullTopic))
(我总是觉得您必须订阅一个主题...)
编辑:添加link to example using fromTopic
最佳答案
是的,有差异。请注意,fromSubscription
方法采用预订的路径,而不是主题的路径。如果使用fromTopic
,则将创建一个新的订阅。结果,将不会读取任何在代码运行之前发布的消息。每次代码运行时,最终也会创建一个新的订阅。
相反,fromSubscription
使用现有订阅,这意味着将在创建订阅后的任何时间阅读发布的消息。如果作业失败并重新启动,则读取可以从中断处继续进行。