Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring webflux 如何像subscribe()一样,在spring webflux kotlin协程中异步运行一些代码而不阻塞当前的协程作用域?_Spring Webflux_Coroutine_Kotlin Coroutines - Fatal编程技术网

Spring webflux 如何像subscribe()一样,在spring webflux kotlin协程中异步运行一些代码而不阻塞当前的协程作用域?

Spring webflux 如何像subscribe()一样,在spring webflux kotlin协程中异步运行一些代码而不阻塞当前的协程作用域?,spring-webflux,coroutine,kotlin-coroutines,Spring Webflux,Coroutine,Kotlin Coroutines,为了在不阻塞当前请求“线程”的情况下创建后台任务,我知道我可以在SpringWebFlux中使用subscribe()。 但在春季webflux kotlin合作项目中,我如何做到这一点?只有GlobalScope.lanuch{}?协同程序等价物: someFlux().subscribe{…}变成someFlow().onEach{…}.launchIn(GlobalScope) someMono().subscribe{…}变成GlobalScope.launch{someSuspend

为了在不阻塞当前请求“线程”的情况下创建后台任务,我知道我可以在SpringWebFlux中使用
subscribe()

但在春季webflux kotlin合作项目中,我如何做到这一点?只有
GlobalScope.lanuch{}

协同程序等价物:

  • someFlux().subscribe{…}
    变成
    someFlow().onEach{…}.launchIn(GlobalScope)
  • someMono().subscribe{…}
    变成
    GlobalScope.launch{someSuspendingFun()}

上面显示的Reactor和Coroutine代码都有一个相同的问题,即由代码启动的后台计算完全独立于启动它的请求,因此如果请求很快连续出现,那么应用程序可能会很快耗尽资源。这就是为什么不建议在实际生产应用中这样做的原因。但是,它对于一次性或定期任务或存在其他代码时可能很有用,这些代码会以某种方式限制此类独立后台任务的数量。

实际上,我想进行审计,您认为这是一个好的解决方案吗?