我在一些示例代码中看到了似乎直接从主题读取的代码?

PubsubIO.readStrings().fromTopic(fullTopic))


那和之间有区别吗

PubsubIO.readStrings().fromSubscription(fullTopic))


(我总是觉得您必须订阅一个主题...)

编辑:添加link to example using fromTopic

最佳答案

是的,有差异。请注意,fromSubscription方法采用预订的路径,而不是主题的路径。如果使用fromTopic,则将创建一个新的订阅。结果,将不会读取任何在代码运行之前发布的消息。每次代码运行时,最终也会创建一个新的订阅。

相反,fromSubscription使用现有订阅,这意味着将在创建订阅后的任何时间阅读发布的消息。如果作业失败并重新启动,则读取可以从中断处继续进行。

10-02 07:37