Класс 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 таймера отправляет сигнал тревоги в указанное время, чтобы разбудить всех слушателей, зарегистрированных для получения уведомлений таймера.
Этот класс управляет списком уведомлений таймера с датами. Метод позволяет пользователям добавлять/удалять любое количество уведомлений по мере необходимости. Когда уведомление таймера, отправленное таймером, устаревает, оно автоматически удаляется из списка уведомлений таймера.
Дополнительные уведомления таймера могут быть добавлены в периодические уведомления.
Примечание:
- При отправке уведомлений таймера таймер обновляет номер последовательности уведомлений независимо от типа уведомления.
- Сервис таймера полагается на системную дату хоста, на котором загружен класс
Timer. Слушатели могут получать несвоевременные уведомления, если их хост имеет другую системную дату. Чтобы избежать таких проблем, синхронизируйте системную дату всех хостов, где требуется тайминг. - По умолчанию для периодических уведомлений используется выполнение с фиксированной задержкой, как указано в
Timer. Для использования выполнения с фиксированной скоростью используйте перегруженный методaddNotification(String, String, Object, Date, long, long, boolean). - Слушатели уведомлений потенциально могут все выполняться в одном потоке. Поэтому они должны выполняться быстро, чтобы не задерживать других слушателей или нарушать регулярность выполнения с фиксированной задержкой. См.
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) Создает новое уведомление таймера с указанным |
Integer |
addNotification(String type,
String message,
Object userData,
Date date,
long period) Создает новое уведомление таймера с указанным |
Integer |
addNotification(String type,
String message,
Object userData,
Date date,
long period,
long nbOccurences) Создает новое уведомление таймера с указанным |
Integer |
addNotification(String type,
String message,
Object userData,
Date date,
long period,
long nbOccurences,
boolean fixedRate) Создает новое уведомление таймера с указанным |
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.