Spring Boot 2 WebFlux在新版本中生成Json流
例如
@GetMapping(value = "stream", produces = APPLICATION_STREAM_JSON_VALUE)
public Flux<Data> stream() {
return Flux.interval(Duration.ofSeconds(1)).map(Data::new);
}
Run Code Online (Sandbox Code Playgroud)
将每隔一秒产生一次新的数据
{"value":"1"}
{"value":"2"}
{"value":"3"}
{"value":"4"}
{"value":"5"}
{"value":"6"}
Run Code Online (Sandbox Code Playgroud)
我已经尝试过angular 5 httpclient
findAll(): Observable<Data> {
return this._http.get<Data>(this.url);
}
Run Code Online (Sandbox Code Playgroud)
但它不适合我,因为我想被反应它不会发送结果,因为它缓存结果,直到连接colsed
我想问一下在角度5中处理这个Json的最佳方法是什么
我的项目结构如下所示:
-Main dir
- .gradle-wrapper
| - gradle-wrapper.jar
| - gradle-wrapper.properties
|
- projects
- library
- library-consumer
Run Code Online (Sandbox Code Playgroud)
内部library和library-consumer我都build.gradle拥有:
wrapper {
jarFile = "${project.projectDir}/../../.gradle-wrapper/gradle-wrapper.jar"
gradleVersion = '4.8.1'
}
Run Code Online (Sandbox Code Playgroud)
另外,在项目中,library-consumer我build.gradle依赖于library项目
compile project(':library')
Run Code Online (Sandbox Code Playgroud)
在library-consumer的settings.gradle我已经包括library像说在这里:
include ':library'
project(':library').projectDir = new File("../library")
Run Code Online (Sandbox Code Playgroud)
然后我在尝试时收到以下错误gradle build:
Could not find method wrapper() for arguments [build_7cibagmqy9u5sctvqdtah2a8p$_run_closure1@134371ea] on project ':library' of type org.gradle.api.Project.
Run Code Online (Sandbox Code Playgroud)
有什么建议/解决方案吗?这两个项目都包括改变了如下包装器的路径:
set CLASSPATH=%APP_HOME%\..\..\.gradle-wrapper\gradle-wrapper.jar
Run Code Online (Sandbox Code Playgroud)
library …
我正在尝试执行以下代码:
val jobs = listOf(...)
return runBlocking(CommonPool) {
val executed = jobs.map {
async { it.execute() }
}.toTypedArray()
awaitAll(*executed)
}
Run Code Online (Sandbox Code Playgroud)
jobs某些Suppliers 的列表在哪里-在同步世界中,这应该只创建例如int列表。一切正常,但问题是未使用主线程。YourKit的Bellow屏幕截图:

我想runBlocking这里是问题,但是还有其他方法可以收到相同的结果吗?使用Java并行流,它看起来要好得多,但是主线程仍未完全利用(任务是完全独立的)。
好吧,也许我告诉你的东西太少了。在观看Vankant Subramaniam的演讲后不久,我的问题就来了:https ://youtu.be/0hQvWIdwnw4 。我需要最高的性能,没有IO,没有Ui等。只有计算。只有请求,我需要使用所有可用资源。
我的一个想法是将Paralleizm设置为线程数+ 1,但是我认为这很愚蠢。