微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在kotlin Coroutines中处理大量的api请求并观察它们

如何解决如何在kotlin Coroutines中处理大量的api请求并观察它们

我想循环调用一个 API 请求,并观察每个 API 请求的结果。问题是我认为有些结果丢失了。我该如何处理?我想使用流或状态流来处理这个问题。等待从请求中获得结果然后继续循环中的另一个数字是否更好?如何?或者是否有一个协程函数可以暂停循环直到观察到结果?

 [info] Checking every *.class/*.jar file's SHA-1.
 [info] Merging files...
 [warn] Merging 'NOTICE' with strategy 'rename'
 [warn] Merging 'meta-inf\NOTICE.txt' with strategy 'rename'
 [warn] Merging 'meta-inf\NOTICE' with strategy 'rename'
 [warn] Merging 'org\xerial\snappy\native\README' with strategy 'rename'
 [warn] Merging 'meta-inf\LICENSE.txt' with strategy 'rename'
 [warn] Merging 'meta-inf\license' with strategy 'rename'
 [warn] Merging 'meta-inf\README.txt' with strategy 'rename'
 [warn] Merging 'about.html' with strategy 'rename'
 [warn] Merging 'LICENSE.txt' with strategy 'rename'
 [warn] Merging 'meta-inf\LICENSE' with strategy 'rename'
 [warn] Merging 'LICENSE' with strategy 'rename'
 [warn] Merging 'meta-inf\DEPENDENCIES' with strategy 'discard'
 [warn] Merging 'meta-inf\DUMMY.DSA' with strategy 'discard'
 [warn] Merging 'meta-inf\DUMMY.SF' with strategy 'discard'
 [warn] Merging 'meta-inf\INDEX.LIST' with strategy 'discard'
 [warn] Merging 'meta-inf\MANIFEST.MF' with strategy 'discard'
 java.lang.RuntimeException: deduplicate: different file contents found in the following:
 C:\Users\rajas\.ivy2\cache\org.apache.avro\avro-ipc\jars\avro-ipc-1.7.7-tests.jar:Meta- INF/maven/org.apache.avro/avro-ipc/pom.properties
 C:\Users\rajas\.ivy2\cache\org.apache.avro\avro-ipc\jars\avro-ipc-1.7.7.jar:meta-inf/maven/org.apache.avro/avro-ipc/pom.properties
    at sbtassembly.Assembly$.sbtassembly$Assembly$$applyStrategy$1(Assembly.scala:106)
    at sbtassembly.Assembly$$anonfun$13.apply(Assembly.scala:123)
    at sbtassembly.Assembly$$anonfun$13.apply(Assembly.scala:120)
    at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
    at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
    at scala.collection.Iterator$class.foreach(Iterator.scala:727)
    at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
    at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
    at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
    at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251)
    at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)
    at sbtassembly.Assembly$.applyStrategies(Assembly.scala:125)
    at sbtassembly.Assembly$.x$1$lzycompute$1(Assembly.scala:25)
    at sbtassembly.Assembly$.x$1$1(Assembly.scala:23)
    at sbtassembly.Assembly$.stratMapping$lzycompute$1(Assembly.scala:23)
    at sbtassembly.Assembly$.stratMapping$1(Assembly.scala:23)
    at sbtassembly.Assembly$.inputs$lzycompute$1(Assembly.scala:67)
    at sbtassembly.Assembly$.inputs$1(Assembly.scala:57)
    at sbtassembly.Assembly$.apply(Assembly.scala:83)
    at sbtassembly.Assembly$$anonfun$assemblyTask$1.apply(Assembly.scala:226)
    at sbtassembly.Assembly$$anonfun$assemblyTask$1.apply(Assembly.scala:223)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
    at sbt.std.Transform$$anon$4.work(System.scala:63)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
    at sbt.Execute.work(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
  [error] (*:assembly) deduplicate: different file contents found in the following:
  [error] C:\Users\rajas\.ivy2\cache\org.apache.avro\avro-ipc\jars\avro-ipc-1.7.7-tests.jar:meta-inf/maven/org.apache.avro/avro-ipc/pom.properties
  [error] C:\Users\rajas\.ivy2\cache\org.apache.avro\avro-ipc\jars\avro-ipc-1.7.7.jar:meta-inf/maven/org.apache.avro/avro-ipc/pom.properties
  [error] Total time: 52 s,completed 24-Jul-2021,4:46:51 PM

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。