Spring webflux 如何像subscribe()一样,在spring webflux kotlin协程中异步运行一些代码而不阻塞当前的协程作用域?
为了在不阻塞当前请求“线程”的情况下创建后台任务,我知道我可以在SpringWebFlux中使用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
subscribe()
。
但在春季webflux kotlin合作项目中,我如何做到这一点?只有
GlobalScope.lanuch{}
?协同程序等价物:
变成someFlux().subscribe{…}
someFlow().onEach{…}.launchIn(GlobalScope)
变成someMono().subscribe{…}
GlobalScope.launch{someSuspendingFun()}
上面显示的Reactor和Coroutine代码都有一个相同的问题,即由代码启动的后台计算完全独立于启动它的请求,因此如果请求很快连续出现,那么应用程序可能会很快耗尽资源。这就是为什么不建议在实际生产应用中这样做的原因。但是,它对于一次性或定期任务或存在其他代码时可能很有用,这些代码会以某种方式限制此类独立后台任务的数量。实际上,我想进行审计,您认为这是一个好的解决方案吗?