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