【问题标题】:Kotlin Coroutines for Parallelism and How long i can have the coroutine open?Kotlin Coroutines for Parallelism 以及我可以打开协程多长时间?
【发布时间】:2021-08-11 09:45:03
【问题描述】:

我需要并行访问 100 个 sqs 来轮询消息并访问另一个服务。我想象的是如何启动 100 个协程并永远运行它,以便每个协程并行访问 SQS,并根据结果,我可能会访问另一个微服务。我对使用这样的协程没有什么疑问

  1. 我可以让我的协程永远打开吗,即启动的协程将有一个循环,该循环将永远运行以从 SQS 获取消息并调用不同的微服务。
  2. 我的协程是否有可能被杀死(当我执行此类非结束操作时,我对微服务和 SQS 抛出的异常有适当的 try/catch,如果是这样,它是如何通过 Kotlin 处理的。
  3. 还有其他方法可以完成许多这种并行工作吗?我的应用程序是 Kotlin/Spring 启动应用程序。

有人可以指导一下这个场景

【问题讨论】:

  • 您能否详细说明什么是 SQS?
  • @HiranChaudhuri "Amazon Simple Queue Service (SQS) 是一个完全托管的消息队列服务"。

标签: java multithreading asynchronous parallel-processing kotlin-coroutines


【解决方案1】:
  1. 是的,没有什么能阻止你让协程永远运行。

  2. Kotlin Coroutines 基础架构中的任何内容都不会想要杀死您的协程。

我认为您提出的问题的答案很简单,但不一定能切中您正在做的事情。长时间运行的作业如何表现很大程度上取决于更广泛的基础设施,而要问的主要问题是关于执行环境的容错性。

【讨论】:

    猜你喜欢
    • 2021-05-11
    • 2021-12-22
    • 1970-01-01
    • 2018-01-23
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    相关资源
    最近更新 更多