我正在尝试让上下文传播在 Quarkus 本机模式下工作。
下面的代码在 JVM 模式下按预期工作,但MDC value: null在本机模式下返回。
我所说的“如预期”是指:
响应curl http://localhost:8080/thread-context是MDC value: from-thread-context
@Inject
ManagedExecutor managedExecutor;
@Inject
ThreadContext threadContext;
private final Supplier<String> mdcValueSupplier =
() -> "MDC value: " + MDC.get("foo") + "\n";
@GET
@Path("thread-context")
public String get() throws ExecutionException, InterruptedException {
MDC.put("foo", "from-thread-context");
Supplier<String> ctxSupplier = threadContext.contextualSupplier(mdcValueSupplier);
return managedExecutor.supplyAsync(ctxSupplier).get();
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个github 存储库,其中包含演示应用程序的完整代码和重现问题的分步说明。
io.quarkus:quarkus-smallrye-context-propagation存在依赖性。
夸库斯版本:1.9.2
问:是我的代码有问题,还是 Quarkus 有问题?