java.lang.Object javax.management.NotificationBroadcasterSupport javax.management.timer.Timer
public class Timer
提供对计时器 MBean 的实现。计时器 MBean 将在指定的时间发出警告,以唤醒所有注册的侦听器来接收计时器通知。
此类管理一个过期的计时器通知列表。这是一种允许用户根据需要任意添加/移除通知的方法。当计时器发出计时器通知并过时后,会将该通知自动从计时器通知列表中移除。
可以将其他计时器通知添加到常规重复发送的通知中。
注:
Timer
类的主机的系统日期。如果侦听器主机具有不同的系统日期,则侦听器可能会不合时宜地接收到通知。为了避免此类问题,要同步所有需要计时的主机的系统日期。 Timer
中指定。为了使用固定速率执行,要使用重载的 addNotification(String, String, Object, Date, long, long, boolean)
方法。 NotificationBroadcasterSupport
。
字段摘要 | |
---|---|
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 的新计时器通知,并将其插入到带有给定日期以及 null 时段和出现数量的通知列表中。 |
Integer |
addNotification(String type, String message, Object userData, Date date, long period) 创建具有指定 type 、message 和 userData 的新计时器通知,并将其插入到带有给定日期和时段,以及 null 出现数量的通知列表中。 |
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 |
字段详细信息 |
---|
public static final long ONE_SECOND
addNotification
方法的有用常量。
public static final long ONE_MINUTE
addNotification
方法的有用常量。
public static final long ONE_HOUR
addNotification
方法的有用常量。
public static final long ONE_DAY
addNotification
方法的有用常量。
public static final long ONE_WEEK
addNotification
方法的有用常量。
构造方法详细信息 |
---|
public Timer()
方法详细信息 |
---|
public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
未在此上下文中使用。
MBeanRegistration
中的
preRegister
server
- 将在其中注册计时器 MBean 的 MBean 服务器。
name
- 计时器 MBean 的对象名。
Exception
public void postRegister(Boolean registrationDone)
未在此上下文中使用。
MBeanRegistration
中的
postRegister
registrationDone
- 指示该 MBean 是否已在 MBean 服务器中成功注册。false 值意味着注册阶段已失败。
public void preDeregister() throws Exception
停止计时器。
MBeanRegistration
中的
preDeregister
Exception
public void postDeregister()
未在此上下文中使用。
MBeanRegistration
中的
postDeregister
public MBeanNotificationInfo[] getNotificationInfo()
NotificationBroadcaster
复制的描述
返回一个数组,指示此 MBean 可能发送的每个通知的 Java 类名和通知类型。
MBean 发送此数组中未描述的通知是合法的。但是,某些 MBean 服务器的客户端要想正常运行,可能要依赖完整的数组。
NotificationBroadcaster
中的
getNotificationInfo
NotificationBroadcasterSupport
中的
getNotificationInfo
public void start()
如果有一个或多个计时器通知早于通知列表中的时间,则将根据 sendPastNotifications
标志发送通知,然后根据其周期和剩余出现数量更新通知。如果计时器通知日期早于当前日期,则仅从通知列表中移除此通知。
TimerMBean
中的
start
public void stop()
TimerMBean
中的
stop
public Integer addNotification(String type, String message, Object userData, Date date, long period, long nbOccurences, boolean fixedRate) throws IllegalArgumentException
type
、
message
和
userData
的新计时器通知,并将其插入到带有给定日期、时段和出现数量的通知列表中。
如果要插入的计时器通知其日期早于当前的日期,则该方法具有把指定的日期当做当前日期的行为。
对于“一次性”通知,将立即发出该通知。
对于定期通知,将立即发出第一个通知,而后续通知将根据 period 参数指定的间隔提供。
注意,一旦将计时器通知添加到通知列表中,将不能更新其相关的日期、时段和出现数量。
如果是定期通知,则参数 fixedRate 的值将用来指定执行方案,如在 Timer
中指定的那样。
TimerMBean
中的
addNotification
type
- 计时器通知类型。
message
- 计时器通知详细消息。
userData
- 计时器通知用户数据对象。
date
- 发出通知时的日期。
period
- 计时器通知的时段(以毫秒为单位)。
nbOccurences
- 将发出的计时器通知的总数。
fixedRate
- 如果为
true
并且通知是定期的,则使用
固定速率 执行方案安排该通知。如果为
false
并且通知是定期的,则使用
固定延迟 执行方案安排通知。如果通知不是定期的,则将被忽略。
IllegalArgumentException
- 如果 date 为
null
或者 period 或出现的数量为负数。
addNotification(String, String, Object, Date, long, long)
public Integer addNotification(String type, String message, Object userData, Date date, long period, long nbOccurences) throws IllegalArgumentException
type
、
message
和
userData
的新计时器通知,并将其插入到带有给定日期、时段和出现数量的通知列表中。
如果要插入的计时器通知其日期早于当前的日期,则该方法具有把指定的日期当做当前日期的行为。
对于“一次性”通知,将立即发出该通知。
对于定期通知,将立即发出第一个通知,而后续通知将根据 period 参数指定的间隔提供。
注意,一旦将计时器通知添加到通知列表中,将不能更新其相关的日期、时段和出现数量。
如果是定期通知,则使用固定延迟 执行方案,如在 Timer
中指定的那样。为了使用固定速率 执行方案,要使用 addNotification(String, String, Object, Date, long, long, boolean)
。
TimerMBean
中的
addNotification
type
- 计时器通知类型。
message
- 计时器通知详细消息。
userData
- 计时器通知用户数据对象。
date
- 发出通知时的日期。
period
- 计时器通知的时段(以毫秒为单位)。
nbOccurences
- 将发出的计时器通知的总数。
IllegalArgumentException
- 如果 date 为
null
或者 period 或出现的数量为负数。
addNotification(String, String, Object, Date, long, long, boolean)
public Integer addNotification(String type, String message, Object userData, Date date, long period) throws IllegalArgumentException
type
、
message
和
userData
的新计时器通知,并将其插入到带有给定日期和时段,以及 null 出现数量的通知列表中。
通过使用固定延迟 执行方案,计时器通知将持续重复使用计时器时段,如在 Timer
中指定的那样。为了使用固定速率 执行方案,要使用 addNotification(String, String, Object, Date, long, long, boolean)
。
如果要插入的计时器通知其日期早于当前的日期,则该方法具有把指定的日期当做当前日期的行为。将立即发出第一个通知,而后续通知将根据 period 参数指定的间隔提供。
TimerMBean
中的
addNotification
type
- 计时器通知类型。
message
- 计时器通知详细消息。
userData
- 计时器通知用户数据对象。
date
- 发出通知时的日期。
period
- 计时器通知的时段(以毫秒为单位)。
IllegalArgumentException
- 如果 date 为
null
或者 period 或出现的数量为负数。
public Integer addNotification(String type, String message, Object userData, Date date) throws IllegalArgumentException
type
、
message
和
userData
的新计时器通知,并将其插入到带有给定日期以及 null 时段和出现数量的通知列表中。
计时器通知将在指定的日期一次性处理。
如果要插入的计时器通知其日期早于当前的日期,则该方法具有把指定的日期当做当前日期的行为,并且将立即发出通知。
TimerMBean
中的
addNotification
type
- 计时器通知类型。
message
- 计时器通知详细消息。
userData
- 计时器通知用户数据对象。
date
- 发出通知时的日期。
IllegalArgumentException
- 如果 date 为
null
。
public void removeNotification(Integer id) throws InstanceNotFoundException
TimerMBean
中的
removeNotification
id
- 计时器通知标识符。
InstanceNotFoundException
- 如果指定的标识符不能与此计时器 MBean 通知列表中的任何计时器通知对应。
public void removeNotifications(String type) throws InstanceNotFoundException
TimerMBean
中的
removeNotifications
type
- 计时器通知类型。
InstanceNotFoundException
- 如果指定类型不能与此计时器 MBean 通知列表中的任何计时器通知对应。
public void removeAllNotifications()
TimerMBean
中的
removeAllNotifications
public int getNbNotifications()
TimerMBean
中的
getNbNotifications
public Vector<Integer> getAllNotificationIDs()
TimerMBean
中的
getAllNotificationIDs
Integer
对象的向量。
public Vector<Integer> getNotificationIDs(String type)
TimerMBean
中的
getNotificationIDs
type
- 计时器通知类型。
Integer
对象的向量,该对象包含所有带指定
type
的计时器通知的标识符。
type
的计时器 MBean 注册的计时器通知,则该向量为空。
public String getNotificationType(Integer id)
TimerMBean
中的
getNotificationType
id
- 计时器通知标识符。
public String getNotificationMessage(Integer id)
TimerMBean
中的
getNotificationMessage
id
- 计时器通知标识符。
public Object getNotificationUserData(Integer id)
TimerMBean
中的
getNotificationUserData
id
- 计时器通知标识符。
public Date getDate(Integer id)
TimerMBean
中的
getDate
id
- 计时器通知标识符。
public Long getPeriod(Integer id)
TimerMBean
中的
getPeriod
id
- 计时器通知标识符。
public Long getNbOccurences(Integer id)