Spec-Zone.ru › OpenJDK 21

Интерфейс аннотаций 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

Краткое описание необязательных элементов

Модификатор и тип Необязательный элемент Описание
String value
Возвращает значение настройки по умолчанию для периодической настройки.

Краткое описание полей

Модификатор и тип Поле Описание
static final String NAME
Имя настройки "period" для конфигурации периодических событий

Подробное описание полей

NAME

static final String NAME
Имя настройки "period" для конфигурации периодических событий
См. также:
  • Значения константных полей

Подробное описание элементов

value

String value
Возвращает значение настройки по умолчанию для периодической настройки.

Строковое представление положительного Long значения, за которым следует пробел и один из следующих единиц:

"us" (микросекунды)
"ms" (миллисекунды)
"s" (секунды)
"m" (минуты)
"h" (часы)
"d" (дни)

Примеры значений: "0 ns", "10 ms", и "1 s".

Период также может быть "everyChunk" , чтобы указать, что он происходит по крайней мере один раз для каждого файла записи. Количество испускаемых событий зависит от того, сколько раз происходят вращения файла во время записи данных.

Возвращает:
значение настройки по умолчанию, не null
По умолчанию:
"everyChunk"

© 1993, 2023, 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://docs.oracle.com/en/java/javase/21/docs/api/jdk.jfr/jdk/jfr/Period.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API