Интерфейс аннотации Period
@Retention(RUNTIME) @Inherited @Target(TYPE) public @interface Period
Следующий пример демонстрирует, как аннотация Period может использоваться для генерации событий с разными интервалами.
@Period("1 s")
@Name("Counter")
class CountEvent extends Event {
int count;
}
@Period("3 s")
@Name("Fizz")
class FizzEvent extends Event {
}
@Period("5 s")
@Name("Buzz")
class BuzzEvent extends Event {
}
var counter = new AtomicInteger();
FlightRecorder.addPeriodicEvent(CountEvent.class, () -> {
CountEvent event = new CountEvent();
event.count = counter.incrementAndGet();
event.commit();
});
FlightRecorder.addPeriodicEvent(FizzEvent.class, () -> {
new FizzEvent().commit();
});
FlightRecorder.addPeriodicEvent(BuzzEvent.class, () -> {
new BuzzEvent().commit();
});
var sb = new StringBuilder();
var last = new AtomicInteger();
var current = new AtomicInteger();
try (var r = new RecordingStream()) {
r.onEvent("Counter", e -> current.set(e.getValue("count")));
r.onEvent("Fizz", e -> sb.append("Fizz"));
r.onEvent("Buzz", e -> sb.append("Buzz"));
r.onFlush(() -> {
if (current.get() != last.get()) {
System.out.println(sb.isEmpty() ? current : sb);
last.set(current.get());
sb.setLength(0);
}
});
r.start();
}
- С момента:
- 9
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final String |
NAME |
Имя настройки "period" для конфигурации периодических событий |
Краткое описание необязательных элементов
| Модификатор и тип | Необязательный элемент | Описание |
|---|---|---|
String |
value |
Возвращает значение настройки по умолчанию для периодической настройки. |
Подробное описание полей
NAME
static final String NAME
"period" для конфигурации периодических событий- См. также:
Подробное описание элементов
value
String value
Строковое представление положительного значения Long, за которым следует пробел и один из следующих единиц измерения:
"ns" (наносекунды)
"us" (микросекунды)
"ms" (миллисекунды)
"s" (секунды)
"m" (минуты)
"h" (часы)
"d" (дни)
Примеры значений: "0 ns", "10 ms" и "1 s".
Период также может быть "everyChunk", чтобы указать, что он происходит как минимум один раз на каждый файл записи. Количество сгенерированных событий зависит от того, сколько раз происходят вращения файла при записи данных.
- Возвращает:
- значение настройки по умолчанию, не
null
- По умолчанию:
"everyChunk"
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/jdk.jfr/jdk/jfr/Period.html