-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FutureTask/CompletableFuture的异步任务场景下,TTL的使用 #154
Comments
1.
|
多谢回复,已经找到解决办法,项目中已经引入,测试没问题,已发布上线
发自我的iPhone
…------------------ 原始邮件 ------------------
发件人: 李鼎(哲良) <[email protected]>
发送时间: 2019年11月29日 21:32
收件人: alibaba/transmittable-thread-local <[email protected]>
抄送: 辛令剑 <[email protected]>, Mention <[email protected]>
主题: 回复:[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是不能正常传递的。
# 原因
1. threadlocal线程隔离
2. InherbritableThreadLocal虽然可以解决线程隔离问题,但是无法解决线程池线程复用导致的日志tag混乱问题
# 原先解决方案:
1. 执行异步任务前重新获取threadlocal中的tag,然后在开启新任务的地方重新setThreadlocal
2. tag作为参数进行传递
# 引入TTL后的方案
1. 采用ttl的TransmittableThreadLocal存储日志tag
2. 用TtlExecutors封装ThreadPool帮助类
3. 使用CompletableFuture并制定Executor
发自我的iPhone
…------------------ 原始邮件 ------------------
发件人: 李鼎(哲良) <[email protected]>
发送时间: 2019年11月29日 21:45
收件人: alibaba/transmittable-thread-local <[email protected]>
抄送: 辛令剑 <[email protected]>, Mention <[email protected]>
主题: 回复:[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.
|
关于『使用CompletableFuture并制定Executor』这点,对CompletableFuture及其使用ForkJoinPool Executor你是如何定制的? @liaofanxin 😁
|
使用了2.3对用ForkJoinPool Executor进行修饰
发自我的iPhone
…------------------ 原始邮件 ------------------
发件人: 李鼎(哲良) <[email protected]>
发送时间: 2019年11月30日 14:13
收件人: alibaba/transmittable-thread-local <[email protected]>
抄送: 辛令剑 <[email protected]>, Mention <[email protected]>
主题: 回复:[alibaba/transmittable-thread-local] FutureTask/CompletableFuture的异步任务场景下,TTL的使用 (#154)
引入TTL后的方案
……
3. 使用CompletableFuture并制定Executor
关于『使用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的支持,能否分享一个demo,感谢! |
你好,您刚才发给我的邮件我已经收到!
祝工作顺利,事事顺心!
谢谢你的邮件!
|
请问在JDK1.8,CompletableFuture的异步任务的时候,如果做兼容?有demo可以参考一下吗
The text was updated successfully, but these errors were encountered: