Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
阿啄debugIT
transmittable-thread-local
提交
a19501d7
T
transmittable-thread-local
项目概览
阿啄debugIT
/
transmittable-thread-local
与 Fork 源项目一致
从无法访问的项目Fork
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
transmittable-thread-local
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a19501d7
编写于
7月 29, 2019
作者:
oldratlee
🔥
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add reactive integration demo
上级
18c92417
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
105 addition
and
0 deletion
+105
-0
pom.xml
pom.xml
+5
-0
pom4ide.xml
pom4ide.xml
+5
-0
src/test/java/com/alibaba/integration/ReactorIntegrationDemo.kt
...st/java/com/alibaba/integration/ReactorIntegrationDemo.kt
+48
-0
src/test/java/com/alibaba/integration/RxJavaIntegrationDemo.kt
...est/java/com/alibaba/integration/RxJavaIntegrationDemo.kt
+47
-0
未找到文件。
pom.xml
浏览文件 @
a19501d7
...
@@ -171,6 +171,11 @@
...
@@ -171,6 +171,11 @@
<version>
3.5
</version>
<version>
3.5
</version>
<scope>
test
</scope>
<scope>
test
</scope>
</dependency>
</dependency>
<dependency>
<groupId>
io.projectreactor
</groupId>
<artifactId>
reactor-core
</artifactId>
<version>
3.2.10.RELEASE
</version>
</dependency>
</dependencies>
</dependencies>
<distributionManagement>
<distributionManagement>
...
...
pom4ide.xml
浏览文件 @
a19501d7
...
@@ -171,6 +171,11 @@
...
@@ -171,6 +171,11 @@
<version>
3.5
</version>
<version>
3.5
</version>
<scope>
test
</scope>
<scope>
test
</scope>
</dependency>
</dependency>
<dependency>
<groupId>
io.projectreactor
</groupId>
<artifactId>
reactor-core
</artifactId>
<version>
3.2.10.RELEASE
</version>
</dependency>
</dependencies>
</dependencies>
<distributionManagement>
<distributionManagement>
...
...
src/test/java/com/alibaba/integration/ReactorIntegrationDemo.kt
0 → 100644
浏览文件 @
a19501d7
@
file
:
JvmName
(
"ReactorIntegrationDemo"
)
package
com.alibaba.integration
import
com.alibaba.ttl.TransmittableThreadLocal
import
com.alibaba.ttl.threadpool.TtlExecutors
import
reactor.core.publisher.Flux
import
reactor.core.scheduler.Schedulers
fun
main
()
{
// TTL integration for Reactor
Schedulers
.
addExecutorServiceDecorator
(
"TransmittableThreadLocal"
)
{
_
,
scheduledExecutorService
->
TtlExecutors
.
getTtlScheduledExecutorService
(
scheduledExecutorService
)
}
val
ttl
=
TransmittableThreadLocal
<
String
?
>()
ttl
.
set
(
"init"
)
// expand thread pool
Flux
.
range
(
1
,
20
)
.
flatMap
{
Flux
.
just
(
it
)
.
subscribeOn
(
Schedulers
.
parallel
())
.
doOnNext
{
Thread
.
sleep
(
2
)
println
(
"expand thread pool: [${Thread.currentThread().name}] $it ${ttl.get()}"
)
}
}
.
collectList
()
.
block
()
ttl
.
set
(
"jerry"
)
Flux
.
just
(
"Hello"
)
.
subscribeOn
(
Schedulers
.
parallel
())
.
doOnNext
{
println
(
"[${Thread.currentThread().name}] $it ${ttl.get()}"
)
}
.
collectList
()
.
block
()
ttl
.
set
(
"tom"
)
Flux
.
just
(
"Hello"
)
.
subscribeOn
(
Schedulers
.
parallel
())
.
doOnNext
{
println
(
"[${Thread.currentThread().name}] $it ${ttl.get()}"
)
}
.
collectList
()
.
block
()
}
src/test/java/com/alibaba/integration/RxJavaIntegrationDemo.kt
0 → 100644
浏览文件 @
a19501d7
@
file
:
JvmName
(
"RxJavaIntegrationDemo"
)
package
com.alibaba.integration
import
com.alibaba.ttl.TransmittableThreadLocal
import
com.alibaba.ttl.TtlRunnable
import
io.reactivex.Flowable
import
io.reactivex.plugins.RxJavaPlugins
import
io.reactivex.schedulers.Schedulers
fun
main
()
{
val
ttl
=
TransmittableThreadLocal
<
String
?
>()
ttl
.
set
(
"init"
)
// expand thread pool
Flowable
.
range
(
1
,
20
)
.
flatMap
{
Flowable
.
just
(
it
)
.
observeOn
(
Schedulers
.
computation
())
.
doOnNext
{
Thread
.
sleep
(
2
)
println
(
"expand thread pool: [${Thread.currentThread().name}] $it ${ttl.get()}"
)
}
}
.
toList
()
.
blockingGet
()
// TTL integration for RxJava
RxJavaPlugins
.
setScheduleHandler
(
TtlRunnable
::
get
)
ttl
.
set
(
"jerry"
)
Flowable
.
just
(
"Hello"
)
.
observeOn
(
Schedulers
.
computation
())
.
doOnNext
{
println
(
"[${Thread.currentThread().name}] $it ${ttl.get()}"
)
}
.
toList
()
.
blockingGet
()
ttl
.
set
(
"tom"
)
Flowable
.
just
(
"Hello"
)
.
subscribeOn
(
Schedulers
.
computation
())
.
doOnNext
{
println
(
"[${Thread.currentThread().name}] $it ${ttl.get()}"
)
}
.
toList
()
.
blockingGet
()
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录