国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP的Ev教程三(Periodic watcher)

wapeyang / 1837人閱讀

摘要:周期性觀察者的運行模式根據偏移間隔和重新調度參數,不同周期的觀察者工作絕對定時器。這并不意味著觸發器之間總是有秒的時間,但只有當系統時間顯示一個完整的小時時才會調用回調。它必須根據傳遞的時間值也就是說,大于或等于第二個參數的最低時間值。

Periodic watcher operation modes (周期性觀察者的運行模式)

根據偏移、間隔和重新調度參數,不同周期的觀察者工作

offset

絕對定時器。在此模式中,interval = 0reschedule_cb = NULL. 這一次只是簡單的觸發在時鐘時間偏移,不重復。當時間跳躍發生時,它不會調整,也就是說,如果它在2014/01/01運行,那么當系統時間達到或超過這個時間時,它將運行。

代碼
執行結果
start : 1529568868
w1: enter:1529568877
w1: end:1529568882
w11: enter:1529568888


# 如果我們吧offset都改成改成當前時間 再執行結果
start : 1529568995
w11: enter:1529568995
w1: enter:1529568995
w1: end:1529569000
interval

重復間隔定時器。在這種模式offset = 0reschedule_cb = NULL; 觀察者將總是被安排在下一個偏移量offset + N * interval time(N代表某個整數)超時,然后重復,不管任何時間跳躍。

這并不意味著觸發器之間總是有3600秒的時間,但只有當系統時間顯示一個完整的小時(UTC)時才會調用回調。

這可以用來創建不隨系統時間漂移的定時器:

代碼

執行結果
w2:enter:1529569458
w2:end:1529569458
w3:enter:1529569458
w3:end:1529569458
w3:enter:1529569460
w3:end:1529569460
w2:enter:1529569460
w2:end:1529569460
w2:enter:1529569462
w2:end:1529569462
w3:enter:1529569462
w3:end:1529569462
w3:enter:1529569464
w3:end:1529569464
w2:enter:1529569464
w2:end:1529569464
w2:enter:1529569466
w2:end:1529569466
w3:enter:1529569466
w3:end:1529569466

# 我們注釋w3代碼 并打開w2里的sleep(3)執行結果
# 執行體時間 > 間隔時間
# 我們發現下一次執行時間是上一次執行完成時間
w2:enter:1529570041
w2:end:1529570046
w2:enter:1529570046
w2:end:1529570051
w2:enter:1529570051
w2:end:1529570056
w2:enter:1529570056
w2:end:1529570061
w2:enter:1529570061
w2:end:1529570066
w2:enter:1529570066

# 我們注釋w3代碼 并打開w2里的sleep(1)執行結果
# 執行體時間<=間隔時間
# 我們發現下一次執行時間是正常間隔后執行時間
w2:enter:1529570098
w2:end:1529570099
w2:enter:1529570100
w2:end:1529570101
w2:enter:1529570102
w2:end:1529570103
w2:enter:1529570104

# 我們打開w3里的sleep,然后再執行結果
# 某個觀察者間隔時間受執行體影響,且多個觀察者會互相影響間隔時間
w2:enter:1529569484
w2:end:1529569484
w3:enter:1529569484
w3:end:1529569487
w3:enter:1529569487
w3:end:1529569490
w2:enter:1529569490
w2:end:1529569490
w2:enter:1529569490
w2:end:1529569490
w3:enter:1529569490
w3:end:1529569493
w3:enter:1529569493
w3:end:1529569496
w2:enter:1529569496
w2:end:1529569496
w2:enter:1529569496
w2:end:1529569496
w3:enter:1529569496
總結
如果單個watcher執行體時間 > 間隔時間,那么下一次執行時間就是執行體完成時間
如果單個watcher執行體時間 <= 間隔時間,那么下一次執行時間就是間隔后執行時間
如果多個watcher,各執行體的時間相互影響對方

EvPeriodic 將嘗試在這種模式下運行回調,在當`time = offset ( mod interval )下一個可能的時間,不管任何時間跳躍。

reschedule_cb

手動重調度模式。在這種模式reschedule_cb是可調用。

間隔和偏移都被忽略了。相反,每次周期性觀察者被調度時,重新調度回調(reschedule_cb)將首先以觀察者的方式調用,而當前時間作為第二個參數。

這個回調永遠不能停止或破壞這個或任何其他周期性觀察者,并且不能調用任何事件循環函數或方法。停止它會先返回1000,再停止。一個EvPrepare觀察者可以用于此任務。

它必須根據傳遞的時間值(也就是說,大于或等于第二個參數的最低時間值。)返回下一次觸發。它通常會在調用回調之前被調用,但也可能在其他時候被調用。

代碼

執行結果
w5:enter:1529638365
w5:end:1529638380
w5:enter:1529638380
w5:end:1529638395
w5:enter:1529638395
w5:end:1529638410
w5:enter:1529638410
w5:end:1529638425
w5:enter:1529638425
w5:end:1529638440
w5:enter:1529638440
w5:end:1529638455
w5:enter:1529638455
w5:end:1529638470
w5:enter:1529638470
w5:end:1529638485
w5:enter:1529638485
w5:end:1529638500
w5:enter:1529638500
w5:end:1529638515
w5:enter:1529638515

# php 5.6
# php --ri ev
Ev擴展信息
Ev support => enabled
Debug support => disabled
Version => 1.0.4
[root@localhost libev]# Version => 1.0.4

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/28881.html

相關文章

  • PHPEv教程二(watcher和watche回調等)

    摘要:例如,下面的代碼等待成為可讀的等待直到可讀所有觀察者構造函數會自動啟動觀察者。因此,應該保留由構造函數或工廠方法返回的觀察者對象。觀察者回調傳遞給觀察者構造函數派生于的類等。 Watchers (觀察者) 觀察者是為了記錄某件事而創造的對象。例如,下面的代碼等待STDIN成為可讀的: 所有觀察者構造函數會自動啟動觀察者。createStopped方法創建停止監視器(例如 EvIo::...

    XboxYan 評論0 收藏0

發表評論

0條評論

wapeyang

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<