Spec-Zone.ru › OpenJDK 8

Класс Timer

  • java.lang.Object
    • javax.management.NotificationBroadcasterSupport
      • javax.management.timer.Timer
Все реализованные интерфейсы:
MBeanRegistration, NotificationBroadcaster, NotificationEmitter, TimerMBean

public class Timer
extends NotificationBroadcasterSupport
implements TimerMBean, MBeanRegistration

Обеспечивает реализацию MBean таймера. MBean таймера отправляет сигнал тревоги в указанное время, чтобы разбудить всех слушателей, зарегистрированных для получения уведомлений таймера.

Этот класс управляет списком уведомлений таймера с датами. Метод позволяет пользователям добавлять/удалять любое количество уведомлений по мере необходимости. Когда уведомление таймера, отправленное таймером, устаревает, оно автоматически удаляется из списка уведомлений таймера.
Дополнительные уведомления таймера могут быть добавлены в периодические уведомления.

Примечание:

  1. При отправке уведомлений таймера таймер обновляет номер последовательности уведомлений независимо от типа уведомления.
  2. Сервис таймера полагается на системную дату хоста, на котором загружен класс Timer. Слушатели могут получать несвоевременные уведомления, если их хост имеет другую системную дату. Чтобы избежать таких проблем, синхронизируйте системную дату всех хостов, где требуется тайминг.
  3. По умолчанию для периодических уведомлений используется выполнение с фиксированной задержкой, как указано в Timer. Для использования выполнения с фиксированной скоростью используйте перегруженный метод addNotification(String, String, Object, Date, long, long, boolean).
  4. Слушатели уведомлений потенциально могут все выполняться в одном потоке. Поэтому они должны выполняться быстро, чтобы не задерживать других слушателей или нарушать регулярность выполнения с фиксированной задержкой. См. NotificationBroadcasterSupport.
С:
1.5

Поля

Модификатор и тип Поле и описание
static long ONE_DAY

Количество миллисекунд в одних сутках.

static long ONE_HOUR

Количество миллисекунд в одном часе.

static long ONE_MINUTE

Количество миллисекунд в одной минуте.

static long ONE_SECOND

Количество миллисекунд в одной секунде.

static long ONE_WEEK

Количество миллисекунд в одной неделе.

Конструкторы

Конструктор и описание
Timer()

Конструктор по умолчанию.

Методы

Модификатор и тип Метод и описание
Integer addNotification(String type, String message, Object userData, Date date)

Создает новое уведомление таймера с указанным type, message и userData и вставляет его в список уведомлений с заданной датой и нулевым периодом и количеством повторений.

Integer addNotification(String type, String message, Object userData, Date date, long period)

Создает новое уведомление таймера с указанным type, message и userData и вставляет его в список уведомлений с заданной датой и периодом и нулевым количеством повторений.

Integer addNotification(String type, String message, Object userData, Date date, long period, long nbOccurences)

Создает новое уведомление таймера с указанным type, message и userData и вставляет его в список уведомлений с заданной датой, периодом и количеством повторений.

Integer addNotification(String type, String message, Object userData, Date date, long period, long nbOccurences, boolean fixedRate)

Создает новое уведомление таймера с указанным type, message и userData и вставляет его в список уведомлений с заданной датой, периодом и количеством повторений.

Vector<Integer> getAllNotificationIDs()

Получает все идентификаторы уведомлений таймера, зарегистрированные в списке уведомлений.

Date getDate(Integer id)

Получает копию даты, связанной с уведомлением таймера.

Boolean getFixedRate(Integer id)

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

int getNbNotifications()

Получает количество зарегистрированных уведомлений таймера в списке уведомлений.

Long getNbOccurences(Integer id)

Получает копию оставшегося количества повторений, связанных с уведомлением таймера.

Vector<Integer> getNotificationIDs(String type)

Получает все идентификаторы уведомлений таймера, соответствующие указанному типу.

MBeanNotificationInfo[] getNotificationInfo()

Возвращает массив, указывающий для каждого уведомления, которое может отправить этот MBean, имя класса Java уведомления и тип уведомления.

String getNotificationMessage(Integer id)

Получает подробное сообщение уведомления таймера, соответствующее указанному идентификатору.

String getNotificationType(Integer id)

Получает тип уведомления таймера, соответствующий указанному идентификатору.

Object getNotificationUserData(Integer id)

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

Long getPeriod(Integer id)

Получает копию периода (в миллисекундах), связанного с уведомлением таймера.

boolean getSendPastNotifications()

Получает флаг, указывающий, отправляет ли таймер устаревшие уведомления.

boolean isActive()

Проверяет, активен ли MBean таймера.

boolean isEmpty()

Проверяет, пуст ли список уведомлений таймера.

void postDeregister()

Позволяет MBean таймера выполнить любые операции, необходимые после того, как он был дезарегистрирован сервером MBean.

void postRegister(Boolean registrationDone)

Позволяет MBean таймера выполнить любые операции, необходимые после его регистрации в сервере MBean или после того, как регистрация завершилась ошибкой.

void preDeregister()

Позволяет MBean таймера выполнить любые необходимые операции перед его дезарегистрацией сервером MBean.

ObjectName preRegister(MBeanServer server, ObjectName name)

Позволяет MBean таймера выполнить любые необходимые операции перед его регистрацией в сервере MBean.

void removeAllNotifications()

Удаляет все уведомления таймера из списка уведомлений и сбрасывает счетчик, используемый для обновления идентификаторов уведомлений таймера.

void removeNotification(Integer id)

Удаляет уведомление таймера, соответствующее указанному идентификатору, из списка уведомлений.

void removeNotifications(String type)

Удаляет все уведомления таймера, соответствующие указанному типу, из списка уведомлений.

void setSendPastNotifications(boolean value)

Устанавливает флаг, указывающий, отправляет ли таймер устаревшие уведомления или нет.

void start()

Запускает таймер.

void stop()

Останавливает таймер.

Методы, унаследованные от класса javax.management.NotificationBroadcasterSupport

addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Поля

ONE_SECOND

public static final long ONE_SECOND

Количество миллисекунд в одной секунде. Полезная константа для метода addNotification.

См. также:
Значения константных полей

ONE_MINUTE

public static final long ONE_MINUTE

Количество миллисекунд в одной минуте. Полезная константа для метода addNotification.

См. также:
Значения константных полей

ONE_HOUR

public static final long ONE_HOUR

Количество миллисекунд в одном часе. Полезная константа для метода addNotification.

См. также:
Значения константных полей

ONE_DAY

public static final long ONE_DAY

Количество миллисекунд в одних сутках. Полезная константа для метода addNotification.

См. также:
Значения константных полей

ONE_WEEK

public static final long ONE_WEEK

Количество миллисекунд в одной неделе. Полезная константа для метода addNotification.

См. также:
Значения константных полей

Конструкторы

Timer

public Timer()

Конструктор по умолчанию.

Методы

preRegister

public ObjectName preRegister(MBeanServer server,
                              ObjectName name)
                       throws Exception

Позволяет MBean таймера выполнить необходимые операции перед регистрацией в сервере MBean.

В данном контексте не используется.

Задано в:
preRegister в интерфейсе MBeanRegistration
Параметры:
server - Сервер MBean, в котором будет зарегистрирован таймер MBean.
name - Имя объекта MBean таймера.
Возвращает:
Имя зарегистрированного объекта MBean таймера.
Использует:
Exception

postRegister

public void postRegister(Boolean registrationDone)

Позволяет MBean таймера выполнить необходимые операции после регистрации в сервере MBean или после неудачной регистрации.

В данном контексте не используется.

Задано в:
postRegister в интерфейсе MBeanRegistration
Параметры:
registrationDone - Указывает, была ли MBean успешно зарегистрирована в сервере MBean. Значение false означает, что фаза регистрации завершилась неудачей.

preDeregister

public void preDeregister()
                   throws Exception

Позволяет MBean таймера выполнить необходимые операции перед отрегистрацией сервером MBean.

Останавливает таймер.

Задано в:
preDeregister в интерфейсе MBeanRegistration
Использует:
Exception

postDeregister

public void postDeregister()

Позволяет MBean таймера выполнить необходимые операции после отрегистрации сервером MBean.

В данном контексте не используется.

Задано в:
postDeregister в интерфейсе MBeanRegistration

getNotificationInfo

public MBeanNotificationInfo[] getNotificationInfo()

Описание скопировано из интерфейса: NotificationBroadcaster

Возвращает массив, указывающий для каждого уведомления, которое может отправлять данный MBean, имя класса Java уведомления и тип уведомления.

Для MBean не запрещено отправлять уведомления, не описанные в этом массиве. Однако некоторые клиенты сервера MBean могут полагаться на то, что массив является полным для правильной работы.

Задано в:
getNotificationInfo в интерфейсе NotificationBroadcaster
Переопределяет:
getNotificationInfo в классе NotificationBroadcasterSupport
Возвращает:
массив возможных уведомлений.

start

public void start()

Запускает таймер.

Если в списке уведомлений есть одно или несколько уведомлений таймера до указанного времени, уведомление отправляется в соответствии со флагом sendPastNotifications, а затем обновляется в соответствии с его периодом и оставшимся количеством появлений. Если дата уведомления таймера остается ранее текущей даты, это уведомление просто удаляется из списка уведомлений.

Задано в:
start в интерфейсе TimerMBean

stop

public void stop()

Останавливает таймер.

Задано в:
stop в интерфейсе TimerMBean

addNotification

public Integer addNotification(String type,
                               String message,
                               Object userData,
                               Date date,
                               long period,
                               long nbOccurences,
                               boolean fixedRate)
                        throws IllegalArgumentException

Создает новое уведомление таймера со значениями type, message и userData и вставляет его в список уведомлений с заданной датой, периодом и количеством повторений.

Если дата уведомления таймера, подлежащего вставке, предшествует текущей дате, метод ведет себя так, как если бы указанная дата была текущей датой.
Для разовых уведомлений уведомление доставляется немедленно.
Для периодических уведомлений первое уведомление доставляется немедленно, а последующие – с заданным периодом.

Обратите внимание, что после добавления уведомления таймера в список уведомлений его дата, период и количество появлений не могут быть обновлены.

В случае периодического уведомления значение параметра fixedRate используется для указания схемы выполнения, как указано в Timer.

Задано в:
addNotification в интерфейсе TimerMBean
Параметры:
type - Тип уведомления таймера.
message - Подробное сообщение уведомления таймера.
userData - Объект данных пользователя уведомления таймера.
date - Дата, когда происходит уведомление.
period - Период уведомления таймера (в миллисекундах).
nbOccurences - Общее количество отправки уведомления таймера.
fixedRate - Если true, и если уведомление периодическое, уведомление планируется со схемой выполнения fixed-rate. Если false, и если уведомление периодическое, уведомление планируется со схемой выполнения fixed-delay. Игнорируется, если уведомление не периодическое.
Возвращает:
Идентификатор нового созданного уведомления таймера.
Использует:
IllegalArgumentException - Дата null или период или количество повторений отрицательны.
См. также:
addNotification(String, String, Object, Date, long, long)

addNotification

public Integer addNotification(String type,
                               String message,
                               Object userData,
                               Date date,
                               long period,
                               long nbOccurences)
                        throws IllegalArgumentException

Создает новое уведомление таймера со значениями type, message и userData и вставляет его в список уведомлений с заданной датой, периодом и количеством повторений.

Если дата уведомления таймера, подлежащего вставке, предшествует текущей дате, метод ведет себя так, как если бы указанная дата была текущей датой.
Для разовых уведомлений уведомление доставляется немедленно.
Для периодических уведомлений первое уведомление доставляется немедленно, а последующие – с заданным периодом.

Обратите внимание, что после добавления уведомления таймера в список уведомлений его дата, период и количество появлений не могут быть обновлены.

В случае периодического уведомления используется схема выполнения fixed-delay, как указано в Timer. Для использования схемы выполнения fixed-rate используйте addNotification(String, String, Object, Date, long, long, boolean) вместо этого.

Задано в:
addNotification в интерфейсе TimerMBean
Параметры:
type - Тип уведомления таймера.
message - Подробное сообщение уведомления таймера.
userData - Объект данных пользователя уведомления таймера.
date - Дата, когда происходит уведомление.
period - Период уведомления таймера (в миллисекундах).
nbOccurences - Общее количество отправки уведомления таймера.
Возвращает:
Идентификатор нового созданного уведомления таймера.
Использует:
IllegalArgumentException - Дата null или период или количество повторений отрицательны.
См. также:
addNotification(String, String, Object, Date, long, long, boolean)

addNotification

public Integer addNotification(String type,
                               String message,
                               Object userData,
                               Date date,
                               long period)
                        throws IllegalArgumentException

Создает новое уведомление таймера со значениями type, message и userData и вставляет его в список уведомлений с заданной датой и периодом и нулевым количеством повторений.

Уведомление таймера будет повторяться непрерывно с заданным периодом используя схему выполнения fixed-delay, как указано в Timer. Для использования схемы выполнения fixed-rate используйте addNotification(String, String, Object, Date, long, long, boolean) вместо этого.

Если дата уведомления таймера, подлежащего вставке, предшествует текущей дате, метод ведет себя так, как если бы указанная дата была текущей датой. Первое уведомление доставляется немедленно, а последующие – с заданным периодом.

Определяется:
addNotification в интерфейсе TimerMBean
Параметры:
type — тип уведомления таймера.
message — подробное сообщение уведомления таймера.
userData — объект данных пользователя уведомления таймера.
date — дата, когда происходит уведомление.
period — период уведомления таймера (в миллисекундах).
Возвращает:
Идентификатор нового созданного уведомления таймера.
Имеет исключения:
IllegalArgumentException — дата является null или период отрицательный.

addNotification

public Integer addNotification(String type,
                               String message,
                               Object userData,
                               Date date)
                        throws IllegalArgumentException

Создает новое уведомление таймера со заданным type, message и userData и добавляет его в список уведомлений с заданной датой и нулевым периодом и количеством повторений.

Уведомление таймера будет обработано один раз в указанную дату.

Если дата уведомления таймера, которое нужно добавить, предшествует текущей дате, метод ведет себя так, как если бы заданная дата была текущей датой, и уведомление передается немедленно.

Определяется:
addNotification в интерфейсе TimerMBean
Параметры:
type — тип уведомления таймера.
message — подробное сообщение уведомления таймера.
userData — объект данных пользователя уведомления таймера.
date — дата, когда происходит уведомление.
Возвращает:
Идентификатор нового созданного уведомления таймера.
Имеет исключения:
IllegalArgumentException — дата является null.

removeNotification

public void removeNotification(Integer id)
                        throws InstanceNotFoundException

Удаляет уведомление таймера, соответствующее указанному идентификатору, из списка уведомлений.

Определяется:
removeNotification в интерфейсе TimerMBean
Параметры:
id — идентификатор уведомления таймера.
Имеет исключения:
InstanceNotFoundException — указанный идентификатор не соответствует ни одному уведомлению таймера в списке уведомлений данного MBean таймера.

removeNotifications

public void removeNotifications(String type)
                         throws InstanceNotFoundException

Удаляет все уведомления таймера, соответствующие указанному типу, из списка уведомлений.

Определяется:
removeNotifications в интерфейсе TimerMBean
Параметры:
type — тип уведомления таймера.
Имеет исключения:
InstanceNotFoundException — указанный тип не соответствует ни одному уведомлению таймера в списке уведомлений данного MBean таймера.

removeAllNotifications

public void removeAllNotifications()

Удаляет все уведомления таймера из списка уведомлений и сбрасывает счетчик, используемый для обновления идентификаторов уведомлений таймера.

Определяется:
removeAllNotifications в интерфейсе TimerMBean

getNbNotifications

public int getNbNotifications()

Получает количество зарегистрированных уведомлений таймера в списке уведомлений.

Определяется:
getNbNotifications в интерфейсе TimerMBean
Возвращает:
Количество уведомлений таймера.

getAllNotificationIDs

public Vector<Integer> getAllNotificationIDs()

Получает все идентификаторы уведомлений таймера, зарегистрированные в списке уведомлений.

Определяется:
getAllNotificationIDs в интерфейсе TimerMBean
Возвращает:
Вектор Integer объектов, содержащих все идентификаторы уведомлений таймера.
Вектор пустой, если для данного MBean таймера нет зарегистрированных уведомлений таймера.

getNotificationIDs

public Vector<Integer> getNotificationIDs(String type)

Получает все идентификаторы уведомлений таймера, соответствующие указанному типу.

Определяется:
getNotificationIDs в интерфейсе TimerMBean
Параметры:
type — тип уведомления таймера.
Возвращает:
Вектор Integer объектов, содержащих все идентификаторы уведомлений таймера с указанным type.
Вектор пустой, если для данного MBean таймера нет зарегистрированных уведомлений таймера с указанным type.

getNotificationType

public String getNotificationType(Integer id)

Получает тип уведомления таймера, соответствующий указанному идентификатору.

Определяется:
getNotificationType в интерфейсе TimerMBean
Параметры:
id — идентификатор уведомления таймера.
Возвращает:
Тип уведомления таймера или null, если идентификатор не сопоставлен ни с каким зарегистрированным уведомлением таймера для этого MBean таймера.

getNotificationMessage

public String getNotificationMessage(Integer id)

Получает подробное сообщение уведомления таймера, соответствующее указанному идентификатору.

Определяется:
getNotificationMessage в интерфейсе TimerMBean
Параметры:
id — идентификатор уведомления таймера.
Возвращает:
Подробное сообщение уведомления таймера или null, если идентификатор не сопоставлен ни с каким зарегистрированным уведомлением таймера для этого MBean таймера.

getNotificationUserData

public Object getNotificationUserData(Integer id)

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

Определяется:
getNotificationUserData в интерфейсе TimerMBean
Параметры:
id — идентификатор уведомления таймера.
Возвращает:
Объект данных пользователя уведомления таймера или null, если идентификатор не сопоставлен ни с каким зарегистрированным уведомлением таймера для этого MBean таймера.

getDate

public Date getDate(Integer id)

Получает копию даты, связанной с уведомлением таймера.

Определяется:
getDate в интерфейсе TimerMBean
Параметры:
id — идентификатор уведомления таймера.
Возвращает:
Копию даты или null, если идентификатор не сопоставлен ни с каким зарегистрированным уведомлением таймера для этого MBean таймера.

getPeriod

public Long getPeriod(Integer id)

Получает копию периода (в миллисекундах), связанного с уведомлением таймера.

Определяется:
getPeriod в интерфейсе TimerMBean
Параметры:
id — идентификатор уведомления таймера.
Возвращает:
Копию периода или null, если идентификатор не сопоставлен ни с каким зарегистрированным уведомлением таймера для этого MBean таймера.

getNbOccurences

public Long getNbOccurences(Integer id)

Получает копию оставшегося количества повторений, связанного с уведомлением таймера.

Определяется:
getNbOccurences в интерфейсе TimerMBean
Параметры:
id — идентификатор уведомления таймера.
Возвращает:
Копию оставшегося количества повторений или null, если идентификатор не сопоставлен ни с каким зарегистрированным уведомлением таймера для этого MBean таймера.

getFixedRate

public Boolean getFixedRate(Integer id)

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

Определяется:
getFixedRate в интерфейсе TimerMBean
Параметры:
id — идентификатор уведомления таймера.
Возвращает:
Копию флага, указывающего, выполняется ли периодическое уведомление с фиксированной задержкой или с фиксированной скоростью.

getSendPastNotifications

public boolean getSendPastNotifications()

Получает флаг, указывающий, отправляет ли таймер прошлые уведомления.
Значение флага отправки прошедших уведомлений по умолчанию равно false.

Определяется:
getSendPastNotifications в интерфейсе TimerMBean
Возвращает:
Значение флага отправки прошедших уведомлений.
См. также:
setSendPastNotifications(boolean)

setSendPastNotifications

public void setSendPastNotifications(boolean value)

Устанавливает флаг, указывающий, отправляет ли таймер прошлые уведомления.
Значение флага отправки прошедших уведомлений по умолчанию равно false.

Определяется:
setSendPastNotifications в интерфейсе TimerMBean
Параметры:
value — значение флага отправки прошедших уведомлений.
См. также:
getSendPastNotifications()

isActive

public boolean isActive()

Проверяет, активен ли MBean таймера. MBean таймера помечается как активный, когда вызывается метод start. Он становится неактивным, когда вызывается метод stop.
Значение флага активности по умолчанию равно false.

Определяется:
isActive в интерфейсе TimerMBean
Возвращает:
true если MBean таймера активен, false в противном случае.

isEmpty

public boolean isEmpty()

Проверяет, пуст ли список уведомлений таймера.

Определяется:
isEmpty в интерфейсе TimerMBean
Возвращает:
true если список уведомлений таймера пуст, false в противном случае.

© 1993, 2020, 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