【发布时间】:2020-03-03 09:36:54
【问题描述】:
我的代码中有两次对应用程序的休息调用,即使调用是对同一个端点,我想以微米为单位区分调用。为此,我正在尝试添加一个新字段,如下所示
@Component
class MyMeterFilter : MeterFilter {
var isRequired: Boolean = false
override fun map(id: Meter.Id): Meter.Id {
return if (id.name.startsWith("http")) {
id.withTag(Tag.of("extra.tag", isRequired.toString()))
} else id
}
}
在进行第一次调用之前,我将 isRequired 字段设置为 true,在第二次调用之前,我将其设置为 false(两个调用都是来自单例 bean 的异步)。但正如您从代码中看到的那样,由于只创建了一个类的实例,因此 isRequired 的值在两个调用之间被覆盖。我该如何避免呢?
【问题讨论】:
标签: multithreading kotlin thread-safety micrometer spring-micrometer