使用协程时警告Apache Beam



MyKotlinApache BeamPubsubIO。一切都工作得很好,直到我尝试实现协程.

suspend fun main(args: Array<String>) { ... }

这个可以工作,但是会触发警告:

suspend fun main(args: Array<String>) = runBlocking<Unit> { ... }
WARNING: Application name is not set. Call Builder#setApplicationName.
Oct 22, 2021 11:53:52 AM com.google.api.client.googleapis.services.AbstractGoogleClient <init>
WARNING: Application name is not set. Call Builder#setApplicationName.
Oct 22, 2021 11:53:52 AM com.google.api.client.googleapis.services.AbstractGoogleClient <init>
WARNING: Application name is not set. Call Builder#setApplicationName.
Oct 22, 2021 11:53:52 AM com.google.api.client.googleapis.services.AbstractGoogleClient <init>
WARNING: Application name is not set. Call Builder#setApplicationName.
Oct 22, 2021 11:53:53 AM com.google.api.client.googleapis.services.AbstractGoogleClient <init>
WARNING: Application name is not set. Call Builder#setApplicationName.
Oct 22, 2021 11:53:53 AM com.google.api.client.googleapis.services.AbstractGoogleClient <init>
WARNING: Application name is not set. Call Builder#setApplicationName.

警告消息是垃圾邮件(~每秒5/6条消息),我找不到一种方法来摆脱这些。我没有在我的代码中使用任何与AbstractGoogleClient相关的东西,所以我真的不知道如何在我这边修复这个问题:

@Suppress
suspend fun main(args: Array<String>) = runBlocking<Unit> {
launch {
while (true) {
delay(1000L)
println("Testing...")
}
}
val options =
PipelineOptionsFactory.fromArgs(*args).withValidation().`as`(PipelineOptions::class.java)
val p = Pipeline.create(options)
p.apply<PCollection<String>>(
"Read messages from Pub/Sub",
PubsubIO.readStrings().fromSubscription(options.inputSubscription)
)
.apply("Processing", ParDo.of(ProcessData()))
p.run()
}

任何想法?

你的问题与这里的Github问题相似

设置每个请求的UserAgent头中使用的应用程序名称,如果没有则为空。

UserAgent报头示例:

"{application name} Google-API-Java-Client Google-HTTP-Java-Client/1.22.0 (gzip)"

也许像这样的东西将解决警告(因为它指示调用Builder#setApplicationName))

val service = Builder(...)
.setHttpRequestInitializer(credentials)
.setApplicationName("Your app name")
.build()

最新更新