JavaTM 2 Platform
Standard Ed. 6

javax.management.timer
類別 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)
          創建具有指定 typemessageuserData 的新計時器通知,並將其插入到帶有給定日期以及 null 時段和出現數量的通知列表中。
 Integer addNotification(String type, String message, Object userData, Date date, long period)
          創建具有指定 typemessageuserData 的新計時器通知,並將其插入到帶有給定日期和時段,以及 null 出現數量的通知列表中。
 Integer addNotification(String type, String message, Object userData, Date date, long period, long nbOccurences)
          創建具有指定 typemessageuserData 的新計時器通知,並將其插入到帶有給定日期、時段和出現數量的通知列表中。
 Integer addNotification(String type, String message, Object userData, Date date, long period, long nbOccurences, boolean fixedRate)
          創建具有指定 typemessageuserData 的新計時器通知,並將其插入到帶有給定日期、時段和出現數量的通知列表中。
 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 伺服器中註冊之前執行任何所需的操作。

未在此上下文中使用。

指定者:
介面 MBeanRegistration 中的 preRegister
參數:
server - 將在其中註冊計時器 MBean 的 MBean 伺服器。
name - 計時器 MBean 的物件名。
返回:
已註冊的計時器 MBean 的名稱。
拋出:
Exception

postRegister

public void postRegister(Boolean registrationDone)
允許計時器 MBean 在 MBean 伺服器中註冊後或註冊失敗後執行任何所需的操作。

未在此上下文中使用。

指定者:
介面 MBeanRegistration 中的 postRegister
參數:
registrationDone - 指示該 MBean 是否已在 MBean 伺服器中成功註冊。false 值意味著註冊階段已失敗。

preDeregister

public void preDeregister()
                   throws Exception
允許計時器 MBean 在 MBean 伺服器註銷它之前執行任何所需的操作。

停止計時器。

指定者:
介面 MBeanRegistration 中的 preDeregister
拋出:
Exception

postDeregister

public void postDeregister()
允許計時器 MBean 在 MBean 伺服器註銷它之後執行任何所需的操作。

未在此上下文中使用。

指定者:
介面 MBeanRegistration 中的 postDeregister

getNotificationInfo

public MBeanNotificationInfo[] getNotificationInfo()
從介面 NotificationBroadcaster 複製的描述

返回一個陣列,指示此 MBean 可能發送的每個通知的 Java 類別名和通知型別。

MBean 發送此陣列中未描述的通知是合法的。但是,某些 MBean 伺服器的客戶端要想正常運行,可能要依賴完整的陣列。

指定者:
介面 NotificationBroadcaster 中的 getNotificationInfo
覆寫:
類別 NotificationBroadcasterSupport 中的 getNotificationInfo
返回:
可能的通知陣列。

start

public void start()
啟動計時器。

如果有一個或多個計時器通知早於通知列表中的時間,則將根據 sendPastNotifications 標誌發送通知,然後根據其週期和剩餘出現數量更新通知。如果計時器通知日期早於當前日期,則僅從通知列表中移除此通知。

指定者:
介面 TimerMBean 中的 start

stop

public void stop()
停止計時器。

指定者:
介面 TimerMBean 中的 stop

addNotification

public Integer addNotification(String type,
                               String message,
                               Object userData,
                               Date date,
                               long period,
                               long nbOccurences,
                               boolean fixedRate)
                        throws IllegalArgumentException
創建具有指定 typemessageuserData 的新計時器通知,並將其插入到帶有給定日期、時段和出現數量的通知列表中。

如果要插入的計時器通知其日期早於當前的日期,則該方法具有把指定的日期當做當前日期的行為。
對於“一次性”通知,將立即發出該通知。
對於定期通知,將立即發出第一個通知,而後續通知將根據 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)

addNotification

public Integer addNotification(String type,
                               String message,
                               Object userData,
                               Date date,
                               long period,
                               long nbOccurences)
                        throws IllegalArgumentException
創建具有指定 typemessageuserData 的新計時器通知,並將其插入到帶有給定日期、時段和出現數量的通知列表中。

如果要插入的計時器通知其日期早於當前的日期,則該方法具有把指定的日期當做當前日期的行為。
對於“一次性”通知,將立即發出該通知。
對於定期通知,將立即發出第一個通知,而後續通知將根據 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)

addNotification

public Integer addNotification(String type,
                               String message,
                               Object userData,
                               Date date,
                               long period)
                        throws IllegalArgumentException
創建具有指定 typemessageuserData 的新計時器通知,並將其插入到帶有給定日期和時段,以及 null 出現數量的通知列表中。

通過使用固定延遲 執行方案,計時器通知將持續重複使用計時器時段,如在 Timer 中指定的那樣。為了使用固定速率 執行方案,要使用 addNotification(String, String, Object, Date, long, long, boolean)

如果要插入的計時器通知其日期早於當前的日期,則該方法具有把指定的日期當做當前日期的行為。將立即發出第一個通知,而後續通知將根據 period 參數指定的間隔提供。

指定者:
介面 TimerMBean 中的 addNotification
參數:
type - 計時器通知型別。
message - 計時器通知詳細訊息。
userData - 計時器通知使用者資料物件。
date - 發出通知時的日期。
period - 計時器通知的時段(以毫秒為單位)。
返回:
新創建的計時器通知的標識符。
拋出:
IllegalArgumentException - 如果 date 為 null 或者 period 或出現的數量為負數。

addNotification

public Integer addNotification(String type,
                               String message,
                               Object userData,
                               Date date)
                        throws IllegalArgumentException
創建具有指定 typemessageuserData 的新計時器通知,並將其插入到帶有給定日期以及 null 時段和出現數量的通知列表中。

計時器通知將在指定的日期一次性處理。

如果要插入的計時器通知其日期早於當前的日期,則該方法具有把指定的日期當做當前日期的行為,並且將立即發出通知。

指定者:
介面 TimerMBean 中的 addNotification
參數:
type - 計時器通知型別。
message - 計時器通知詳細訊息。
userData - 計時器通知使用者資料物件。
date - 發出通知時的日期。
返回:
新創建的計時器通知的標識符。
拋出:
IllegalArgumentException - 如果 date 為 null

removeNotification

public void removeNotification(Integer id)
                        throws InstanceNotFoundException
從通知列表中移除與指定標識符對應的計時器通知。

指定者:
介面 TimerMBean 中的 removeNotification
參數:
id - 計時器通知標識符。
拋出:
InstanceNotFoundException - 如果指定的標識符不能與此計時器 MBean 通知列表中的任何計時器通知對應。

removeNotifications

public void removeNotifications(String type)
                         throws InstanceNotFoundException
從通知列表中移除與指定型別對應的所有計時器通知。

指定者:
介面 TimerMBean 中的 removeNotifications
參數:
type - 計時器通知型別。
拋出:
InstanceNotFoundException - 如果指定型別不能與此計時器 MBean 通知列表中的任何計時器通知對應。

removeAllNotifications

public void removeAllNotifications()
從通知列表中刪除所有計時器通知並重置用來更新計時器通知標識符的計數器。

指定者:
介面 TimerMBean 中的 removeAllNotifications

getNbNotifications

public int getNbNotifications()
獲得在通知列表中註冊的計時器通知數。

指定者:
介面 TimerMBean 中的 getNbNotifications
返回:
計時器通知數。

getAllNotificationIDs

public Vector<Integer> getAllNotificationIDs()
獲得所有在通知列表中註冊的計時器通知標識符。

指定者:
介面 TimerMBean 中的 getAllNotificationIDs
返回:
一個套件含所有計時器通知標識符的 Integer 物件的向量。
如果不存在向此計時器 MBean 註冊的計時器通知,則該向量為空。

getNotificationIDs

public Vector<Integer> getNotificationIDs(String type)
獲得所有與指定型別對應的計時器通知的標識符。

指定者:
介面 TimerMBean 中的 getNotificationIDs
參數:
type - 計時器通知型別。
返回:
一個 Integer 物件的向量,該物件包含所有帶指定 type 的計時器通知的標識符。
如果不存在向此帶指定 type 的計時器 MBean 註冊的計時器通知,則該向量為空。

getNotificationType

public String getNotificationType(Integer id)
獲得與指定標識符對應的計時器通知型別。

指定者:
介面 TimerMBean 中的 getNotificationType
參數:
id - 計時器通知標識符。
返回:
計時器通知型別,如果標識符不與向此計時器 MBean 註冊的任何計時器通知對應,則返回 null。

getNotificationMessage

public String getNotificationMessage(Integer id)
獲得與指定標識符對應的計時器通知的詳細訊息。

指定者:
介面 TimerMBean 中的 getNotificationMessage
參數:
id - 計時器通知標識符。
返回:
計時器通知詳細訊息,如果標識符不與向此計時器 MBean 註冊的任何計時器通知對應,則返回 null。

getNotificationUserData

public Object getNotificationUserData(Integer id)
獲得與指定標識符對應的計時器通知使用者資料物件。

指定者:
介面 TimerMBean 中的 getNotificationUserData
參數:
id - 計時器通知標識符。
返回:
計時器通知使用者資料物件,如果標識符不與向此計時器 MBean 註冊的任何計時器通知對應,則返回 null。

getDate

public Date getDate(Integer id)
獲得與計時器通知關聯的日期的一個副本。

指定者:
介面 TimerMBean 中的 getDate
參數:
id - 計時器通知標識符。
返回:
日期的一個副本,如果標識符不與向此計時器 MBean 註冊的任何計時器通知對應,則返回 null。

getPeriod

public Long getPeriod(Integer id)
獲得與計時器通知關聯的時段(以毫秒為單位)的一個副本。

指定者:
介面 TimerMBean 中的 getPeriod
參數:
id - 計時器通知標識符。
返回:
時段的一個副本,如果標識符不與向此計時器 MBean 註冊的任何計時器通知對應,則返回 null。

getNbOccurences

public Long getNbOccurences(Integer id)
獲得與計時器通知關聯的剩餘出現數量的一個副本。

指定者:
介面 TimerMBean 中的 getNbOccurences
參數:
id - 計時器通知標識符。
返回:
剩餘出現數量的一個副本,如果標識符不與向此計時器 MBean 註冊的任何計時器通知對應,則返回 null。

getFixedRate

public Boolean getFixedRate(Integer id)
獲得此種標誌的一個副本:該標誌指示是以固定延遲 方式執行定期通知,還是以固定速率 方式執行。

指定者:
介面 TimerMBean 中的 getFixedRate
參數:
id - 計時器通知標識符。
返回:
指示是以固定延遲 方式執行定期通知,還是以固定速率 方式執行的標誌的一個副本。

getSendPastNotifications

public boolean getSendPastNotifications()
獲得一個指示計時器是否發送過期通知的標誌。
過期通知發送開/關標誌的預設值為 false

指定者:
介面 TimerMBean 中的 getSendPastNotifications
返回:
過期通知發送開/關標誌值。
另請參見:
setSendPastNotifications(boolean)

setSendPastNotifications

public void setSendPastNotifications(boolean value)
設置指示計時器是否發送過期通知的標誌。
過期通知發送開/關標誌的預設值為 false

指定者:
介面 TimerMBean 中的 setSendPastNotifications
參數:
value - 過期通知發送開/關標誌值。
另請參見:
getSendPastNotifications()

isActive

public boolean isActive()
測試計時器 MBean 是否處於啟動狀態。當調用 start 方法時,計時器 MBean 被標記為啟動。當調用 stop 方法時,該標記變為非啟動。
啟動開/關標誌的預設值為 false

指定者:
介面 TimerMBean 中的 isActive
返回:
如果計時器 MBean 處於啟動狀態,則返回 true;否則返回 false

isEmpty

public boolean isEmpty()
測試計時器通知列表是否為空。

指定者:
介面 TimerMBean 中的 isEmpty
返回:
如果計時器通知列表為空,則返回 true,否則返回 false

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only