Java 用于跟踪请求工作流的Guice请求范围
我有一个用例,在一个请求中执行了6个步骤。业务部门要求我们获取流程中每个步骤的结果的指标。他们想让我们记录到一条运动流 在架构上,我正在寻找最好的解决方案。我们有基于java的服务,我希望随着请求的进行有一个请求范围的对象,然后当端点完成时,我们将使用fire-and-forget模式对kinesis异步进行服务调用。这样,报告就不会阻塞主线程Java 用于跟踪请求工作流的Guice请求范围,java,guice,requestscope,Java,Guice,Requestscope,我有一个用例,在一个请求中执行了6个步骤。业务部门要求我们获取流程中每个步骤的结果的指标。他们想让我们记录到一条运动流 在架构上,我正在寻找最好的解决方案。我们有基于java的服务,我希望随着请求的进行有一个请求范围的对象,然后当端点完成时,我们将使用fire-and-forget模式对kinesis异步进行服务调用。这样,报告就不会阻塞主线程 我正在考虑使用原始ThreadLocal或guice范围。有没有人遇到过他们解决的类似问题?我正在考虑使用guice请求范围的组件,这将大大简化代码。我
我正在考虑使用原始ThreadLocal或guice范围。有没有人遇到过他们解决的类似问题?我正在考虑使用guice请求范围的组件,这将大大简化代码。我只是想听听你的意见。谢谢 我假设您不在servlet环境中,因为您将只使用内置的请求范围。即使这样,您也可以使用guiceservlet中的请求范围自己构建范围
void processRequest() {
RequestScoper scope = ServletScopes.scopeRequest(Collections.emptyMap());
try ( RequestScoper.CloseableScope ignored = scope.open() ) {
step1();
step2();
step3();
step4();
step5();
step6();
}
}
您可以使用@RequestScoped
,它在所有步骤上都是相同的对象。例如,您可以使用提供者来访问它