Closed liaofanxin closed 4 years ago
FutureTask
你说到的FutureTask
是指java.util.concurrent.FutureTask
,是吧。 @liaofanxin
java.util.concurrent.FutureTask
是Runnable
,一般是在ThreadPoolExecutor
中执行,可以通过TTL
文档的说明的方法来使用:
这3个背后都是修饰Runnable
,只是使用方式不同。
CompletableFuture
CompletableFuture
的执行,缺省使用ForkJoinPool
作为执行器,底下转成ForkJoinPool
的ForkJoinTask
来执行,使用文档中2.3 使用Java Agent来修饰JDK线程池实现类的方式,透明支持CompletableFuture
的TTL:
参见Issue
Stream
与上面的CompletableFuture
一样,(并行执行的)Stream
底层通过ForkJoinPool
执行。
所以也是使用 文档中2.3 使用Java Agent来修饰JDK线程池实现类的方式,透明支持Stream
的TTL。
参见Issue
多谢回复,已经找到解决办法,项目中已经引入,测试没问题,已发布上线
发自我的iPhone
------------------ 原始邮件 ------------------ 发件人: 李鼎(哲良) <notifications@github.com> 发送时间: 2019年11月29日 21:32 收件人: alibaba/transmittable-thread-local <transmittable-thread-local@noreply.github.com> 抄送: 辛令剑 <804544174@qq.com>, Mention <mention@noreply.github.com> 主题: 回复:[alibaba/transmittable-thread-local] FutureTask/CompletableFuture的异步任务场景下,TTL的使用 (#154)
Closed #154.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.
已经找到解决办法,项目中已经引入,测试没问题,已发布上线
👏👍
能说一下你的场景和解决方法吗?😀 ❤️@liaofanxin
项目的日志tag(例如用户uid,订单id等),采用threadlocal来进行透传,但是在启用future或者threadpool来执行异步任务的时候,threadlocal中的日志tag是不能正常传递的。
发自我的iPhone
------------------ 原始邮件 ------------------ 发件人: 李鼎(哲良) <notifications@github.com> 发送时间: 2019年11月29日 21:45 收件人: alibaba/transmittable-thread-local <transmittable-thread-local@noreply.github.com> 抄送: 辛令剑 <804544174@qq.com>, Mention <mention@noreply.github.com> 主题: 回复:[alibaba/transmittable-thread-local] FutureTask/CompletableFuture的异步任务场景下,TTL的使用 (#154)
能说一下你的场景和解决方法吗?😀 @liaofanxin
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.
引入TTL后的方案
……
- 使用CompletableFuture并制定Executor
关于『使用CompletableFuture并制定Executor』这点,对CompletableFuture及其使用ForkJoinPool Executor你是如何定制的? @liaofanxin 😁
Java Agent
方式吗?Java Agent
,你是如何做的? 使用了2.3对用ForkJoinPool Executor进行修饰
发自我的iPhone
------------------ 原始邮件 ------------------ 发件人: 李鼎(哲良) <notifications@github.com> 发送时间: 2019年11月30日 14:13 收件人: alibaba/transmittable-thread-local <transmittable-thread-local@noreply.github.com> 抄送: 辛令剑 <804544174@qq.com>, Mention <mention@noreply.github.com> 主题: 回复:[alibaba/transmittable-thread-local] FutureTask/CompletableFuture的异步任务场景下,TTL的使用 (#154)
引入TTL后的方案
……
关于『使用CompletableFuture并制定Executor』这点,对CompletableFuture及其使用ForkJoinPool Executor你是如何定制的? @liaofanxin
使用了『2.3 使用Java Agent来修饰JDK线程池实现类』的Java Agent方式吗?
如果没有使用Java Agent,你是如何做的?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.
CompletableFuture
对的CompletableFuture的支持,能否分享一个demo,感谢!
你好,您刚才发给我的邮件我已经收到! 祝工作顺利,事事顺心! 谢谢你的邮件!
请问在JDK1.8,CompletableFuture的异步任务的时候,如果做兼容?有demo可以参考一下吗