此类管理一组带日期的定时器通知。用户可以添加/删除任意数量的通知。当定时器发出通知并变为过时时,它将自动从定时器通知列表中删除。
可以将额外的定时器通知添加到定期重复的通知中。
注意:
- 在发送定时器通知时,定时器会更新通知序列号,无论通知类型如何。
- 定时器服务依赖于加载
Timer类的主机的系统日期。如果其主机具有不同的系统日期,则监听器可能会收到不及时的通知。为避免此类问题,请同步所有需要定时的主机机器的系统日期。 - 周期性通知的默认行为是固定延迟执行,如在
Timer中指定的。要使用固定速率执行,请使用重载的addNotification(String, String, Object, Date, long, long, boolean)方法。 - 通知监听器可能都在同一线程中执行。因此,它们应该快速执行,以避免阻塞其他监听器或干扰固定延迟执行的规律性。请参阅
NotificationBroadcasterSupport。
- 自1.5版本起:
- 1.5
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final long一天中的毫秒数。static final long一小时中的毫秒数。static final long一分钟中的毫秒数。static final long一秒钟中的毫秒数。static final long一周中的毫秒数。 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddNotification(String type, String message, Object userData, Date date) 使用指定的type、message和userData创建新的定时器通知,并将其插入具有给定日期和空周期和发生次数的通知列表中。addNotification(String type, String message, Object userData, Date date, long period) 使用指定的type、message和userData创建新的定时器通知,并将其插入具有给定日期、周期和空发生次数的通知列表中。addNotification(String type, String message, Object userData, Date date, long period, long nbOccurences) 使用指定的type、message和userData创建新的定时器通知,并将其插入具有给定日期、周期和发生次数的通知列表中。addNotification(String type, String message, Object userData, Date date, long period, long nbOccurences, boolean fixedRate) 使用指定的type、message和userData创建新的定时器通知,并将其插入具有给定日期、周期和发生次数的通知列表中。获取注册到通知列表中的所有定时器通知标识符。获取与定时器通知关联的日期的副本。getFixedRate(Integer id) 获取指示周期性通知是以固定延迟还是以固定速率执行的标志的副本。int获取注册到通知列表中的定时器通知数量。获取与定时器通知关联的剩余发生次数的副本。getNotificationIDs(String type) 获取与指定类型对应的所有定时器通知的标识符。获取与指定标识符对应的定时器通知详细消息。获取与指定标识符对应的定时器通知类型。获取与指定标识符对应的定时器通知用户数据对象。获取与定时器通知关联的周期(以毫秒为单位)的副本。boolean获取指示定时器是否发送过去通知的标志。booleanisActive()测试定时器MBean是否活动。booleanisEmpty()测试定时器通知列表是否为空。void允许定时器MBean在被MBean服务器注销后执行所需的任何操作。voidpostRegister(Boolean registrationDone) 允许定时器MBean在被MBean服务器注册后或注册失败后执行所需的任何操作。void允许定时器MBean在被MBean服务器注销前执行所需的任何操作。preRegister(MBeanServer server, ObjectName name) 允许定时器MBean在被MBean服务器注册前执行所需的任何操作。void从通知列表中删除所有定时器通知,并重置用于更新定时器通知标识符的计数器。void从通知列表中删除与指定标识符对应的定时器通知。voidremoveNotifications(String type) 从通知列表中删除与指定类型对应的所有定时器通知。voidsetSendPastNotifications(boolean value) 设置指示定时器是否发送过去通知的标志。voidstart()启动定时器。voidstop()停止定时器。Methods declared in class javax.management.NotificationBroadcasterSupport
addNotificationListener, getNotificationInfo, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
-
Field Details
-
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方法很有用的常量。- 参见:
-
-
Constructor Details
-
Timer
public Timer()默认构造函数。
-
-
Method Details
-
preRegister
允许定时器MBean在被MBean服务器注册前执行所需的任何操作。在此上下文中未使用。
- 指定者:
-
preRegister在接口MBeanRegistration中 - 参数:
-
server- 将定时器MBean注册到的MBean服务器。 -
name- 定时器MBean的对象名称。 - 返回:
- 注册的定时器MBean的名称。
- 抛出:
-
Exception- 如果出现问题
-
postRegister
允许定时器MBean在被MBean服务器注册后或注册失败后执行所需的任何操作。在此上下文中未使用。
- 指定者:
-
postRegister在接口MBeanRegistration中 - 参数:
-
registrationDone- 指示MBean是否已成功注册到MBean服务器。值为false表示注册阶段失败。
-
preDeregister
允许定时器MBean在被MBean服务器注销前执行所需的任何操作。停止定时器。
- 指定者:
-
preDeregister在接口MBeanRegistration中 - 抛出:
-
Exception- 如果出现问题
-
postDeregister
public void postDeregister()允许定时器MBean在被MBean服务器注销后执行所需的任何操作。在此上下文中未使用。
- 指定者:
-
postDeregister在接口MBeanRegistration中
-
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且通知是周期性的,则通知将按照固定速率执行方案进行调度。如果为false且通知是周期性的,则通知将按照固定延迟执行方案进行调度。如果通知不是周期性的,则忽略此参数。 - 返回:
- 新创建的定时器通知的标识符。
- 抛出:
-
IllegalArgumentException- 日期为null或周期或发生次数为负数。 - 参见:
-
addNotification
public Integer addNotification(String type, String message, Object userData, Date date, long period, long nbOccurences) throws IllegalArgumentException 使用指定的type、message和userData创建一个新的定时器通知,并将其插入到具有给定日期、周期和发生次数的通知列表中。如果要插入的定时器通知具有早于当前日期的日期,则该方法的行为就好像指定的日期是当前日期。
对于一次性通知,通知会立即传递。
对于周期性通知,第一个通知会立即传递,随后的通知将按照周期参数指定的间隔传递。请注意,一旦定时器通知已添加到通知列表中,其关联的日期、周期和发生次数将无法更新。
对于周期性通知,使用固定延迟执行方案,如在
Timer中指定的那样。要使用固定速率执行方案,请改用addNotification(String, String, Object, Date, long, long, boolean)。- 指定者:
-
addNotification在接口TimerMBean中指定 - 参数:
-
type- 定时器通知类型。 -
message- 定时器通知详细消息。 -
userData- 定时器通知用户数据对象。 -
date- 通知发生的日期。 -
period- 定时器通知的周期(以毫秒为单位)。 -
nbOccurences- 定时器通知将被发出的总次数。 - 返回:
- 新创建的定时器通知的标识符。
- 抛出:
-
IllegalArgumentException- 日期为null或周期或发生次数为负数。 - 参见:
-
addNotification
public Integer addNotification(String type, String message, Object userData, Date date, long period) throws IllegalArgumentException 使用指定的type、message和userData创建一个新的定时器通知,并将其插入到具有给定日期、周期和发生次数的通知列表中。定时器通知将使用定时器周期连续重复使用固定延迟执行方案,如在
Timer中指定的那样。要使用固定速率执行方案,请改用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 从通知列表中删除与指定标识符对应的定时器通知。- Specified by:
-
addNotificationin interfaceTimerMBean - Parameters:
-
type- The timer notification type. -
message- The timer notification detailed message. -
userData- The timer notification user data object. -
date- The date when the notification occurs. - Returns:
- The identifier of the new created timer notification.
- Throws:
-
IllegalArgumentException- The date isnull.
-
removeNotification
Removes the timer notification corresponding to the specified identifier from the list of notifications.- 指定者:
-
removeNotification在接口TimerMBean中指定 - 参数:
-
id- 定时器通知标识符。 - 抛出:
-
InstanceNotFoundException- 指定的标识符不对应于此定时器MBean的通知列表中的任何定时器通知。
-
removeNotifications
从通知列表中删除与指定类型对应的所有定时器通知。- 指定者:
-
removeNotifications在接口TimerMBean中指定 - 参数:
-
type- 定时器通知类型。 - 抛出:
-
InstanceNotFoundException- 指定的类型不对应于此定时器MBean的通知列表中的任何定时器通知。
-
removeAllNotifications
public void removeAllNotifications()从通知列表中删除所有定时器通知,并重置用于更新定时器通知标识符的计数器。- 指定者:
-
removeAllNotifications在接口TimerMBean中指定
-
getNbNotifications
public int getNbNotifications()获取注册到通知列表中的定时器通知数量。- 指定者:
-
getNbNotifications在接口TimerMBean中 - 返回值:
- 定时器通知的数量。
-
getAllNotificationIDs
获取注册到通知列表中的所有定时器通知标识符。- 指定者:
-
getAllNotificationIDs在接口TimerMBean中 - 返回值:
-
包含所有定时器通知标识符的
Integer对象向量。
如果没有为此定时器MBean注册定时器通知,则向量为空。
-
getNotificationIDs
获取与指定类型对应的所有定时器通知标识符。- 指定者:
-
getNotificationIDs在接口TimerMBean中 - 参数:
-
type- 定时器通知类型。 - 返回值:
-
包含具有指定
type的所有定时器通知标识符的Integer对象向量。
如果没有为此定时器MBean注册具有指定type的定时器通知,则向量为空。
-
getNotificationType
获取与指定标识符对应的定时器通知类型。- 指定者:
-
getNotificationType在接口TimerMBean中 - 参数:
-
id- 定时器通知标识符。 - 返回值:
- 定时器通知类型,如果标识符未映射到此定时器MBean注册的任何定时器通知,则返回null。
-
getNotificationMessage
获取与指定标识符对应的定时器通知详细消息。- 指定者:
-
getNotificationMessage在接口TimerMBean中 - 参数:
-
id- 定时器通知标识符。 - 返回值:
- 定时器通知详细消息,如果标识符未映射到此定时器MBean注册的任何定时器通知,则返回null。
-
getNotificationUserData
获取与指定标识符对应的定时器通知用户数据对象。- 指定者:
-
getNotificationUserData在接口TimerMBean中 - 参数:
-
id- 定时器通知标识符。 - 返回值:
- 定时器通知用户数据对象,如果标识符未映射到此定时器MBean注册的任何定时器通知,则返回null。
-
getDate
获取与定时器通知关联的日期的副本。- 指定者:
-
getDate在接口TimerMBean中 - 参数:
-
id- 定时器通知标识符。 - 返回值:
- 日期的副本,如果标识符未映射到此定时器MBean注册的任何定时器通知,则返回null。
-
getPeriod
获取与定时器通知关联的周期(以毫秒为单位)的副本。- 指定者:
-
getPeriod在接口TimerMBean中 - 参数:
-
id- 定时器通知标识符。 - 返回值:
- 周期的副本,如果标识符未映射到此定时器MBean注册的任何定时器通知,则返回null。
-
getNbOccurences
获取与定时器通知关联的剩余发生次数的副本。- 指定者:
-
getNbOccurences在接口TimerMBean中 - 参数:
-
id- 定时器通知标识符。 - 返回值:
- 剩余发生次数的副本,如果标识符未映射到此定时器MBean注册的任何定时器通知,则返回null。
-
getFixedRate
获取指示周期性通知是以固定延迟还是以固定速率执行的标志的副本。- 指定者:
-
getFixedRate在接口TimerMBean中 - 参数:
-
id- 定时器通知标识符。 - 返回值:
- 获取指示周期性通知是以固定延迟还是以固定速率执行的标志的副本。
-
getSendPastNotifications
public boolean getSendPastNotifications()获取指示定时器是否发送过去通知的标志。
过去通知发送开/关标志的默认值为false。- 指定者:
-
getSendPastNotifications在接口TimerMBean中 - 返回值:
- 过去通知发送开/关标志的值。
- 参见:
-
setSendPastNotifications
public void setSendPastNotifications(boolean value) 设置指示定时器是否发送过去通知的标志。
过去通知发送开/关标志的默认值为false。- 指定者:
-
setSendPastNotifications在接口TimerMBean中 - 参数:
-
value- 过去通知发送开/关标志的值。 - 参见:
-
isActive
public boolean isActive()测试定时器MBean是否处于活动状态。当调用start方法时,定时器MBean被标记为活动。当调用stop方法时,它变为非活动状态。
活动开/关标志的默认值为false。- 指定者:
-
isActive在接口TimerMBean中 - 返回值:
-
如果定时器MBean处于活动状态,则返回
true,否则返回false。
-
isEmpty
public boolean isEmpty()测试定时器通知列表是否为空。- 指定者:
-
isEmpty在接口TimerMBean中 - 返回值:
-
如果定时器通知列表为空,则返回
true,否则返回false。
-