【发布时间】:2020-02-24 01:18:49
【问题描述】:
我有一个 java 代码使用一个执行程序提供程序启动一个 PubsubSubscriber。它可以空转 16 小时。但是,大约 1 天的空闲它停止接收来自订阅的消息。如果我重新启动程序,它将重新开始工作。我从文档中阅读 https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/pubsub/v1/package-summary.html 为了让订阅者永远运行,需要一个执行者提供者。我发起了一个
ExecutorProvider executorProvider = FixedExecutorProvider.create(myScheduledExecutorService);
this.subscriber = Subscriber
.newBuilder(subscriptionName, this)
.setExecutorProvider(executorProvider)
.setCredentialsProvider(myCredentialsProvider)
.build();
上面的executorProvider是由
创建的是否需要进行其他设置以确保订阅者继续接收消息?
【问题讨论】:
-
您的 Pub/Sub 订阅者在哪里运行? (例如,在本地、在计算引擎中的 GCP 上、在 Kubernetes 中)
-
Kolban 订阅者在 linux box 的权限上运行。
-
这可能是...的副本 stackoverflow.com/questions/48834419/… 那里有一个非常好的答案。如果没有别的,请查看那里提供的答案并用对这些可能性的回答来更新问题..如果没有别的将它们排除为潜力。你也可以考虑在这里提出问题github.com/googleapis/nodejs-pubsub ...但是我怀疑你也会被要求提供这篇文章中要求的答案。
-
我以前看过那篇文章。在我的情况下,凭证是正确的,消息在收到后得到确认。我们只有一个订阅者。该帖子中提到的几乎所有内容都已针对我的情况进行了检查。一个区别是帖子使用的是 Python,而我使用的是 Java。就订阅者的行为而言,这不会造成太大差异。
-
您有可用的日志吗?是否有可能您的 Java 应用程序正在崩溃或您的机器正在重新启动?
标签: java google-cloud-platform publish-subscribe google-cloud-pubsub