alibaba / transmittable-thread-local

📌 a missing Java std lib(simple & 0-dependency) for framework/middleware, provide an enhanced InheritableThreadLocal that transmits values between threads even using thread pooling components.
https://github.com/alibaba/transmittable-thread-local
Apache License 2.0
7.59k stars 1.69k forks source link

k8s环境下CPU调整>2数量后线程上下文传递失效 #579

Closed llm163520 closed 9 months ago

llm163520 commented 9 months ago

代码示例:

e866b2aacd4586cca6bc257e48c3aaf
final  ThreadLocal<Object> key = new TransmittableThreadLocal<>();
key.set("key");
CompletableFuture.runAsync(ThrowingRunnable.throwing(() ->
    System.out.println("key: "+key.get())
)).get();

K8S配置:

4ad5cd0862abf5dee3ec50e166858de
oldratlee commented 9 months ago

需要有TTL的修饰操作,使用方法如下: @llm163520 (更多具体内容如其它的使用方式,请查看文档 👥 User Guide

final ThreadLocal<Object> context = new TransmittableThreadLocal<>();
context.set("key");

final Runnable bizRunnable = ...;
// 对传入的Runnable 做TTL修饰(可以有其它的使用方式,参见「👥 User Guide」)
CompletableFuture.runAsync(TtlRunnable.get(bizRunnable)).get();

PS: 与K8S这样的运行环境无直接关系。

相关 issue