Spec-Zone.ru › OpenJDK 27

Интерфейс аннотации 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", чтобы указать, что событие происходит не реже одного раза для каждого файла записи. Число генерируемых событий зависит от количества ротаций файла во время записи данных.

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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