亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

PHP的Ev教程三(Periodic watcher)

wapeyang / 1891人閱讀

摘要:周期性觀察者的運(yùn)行模式根據(jù)偏移間隔和重新調(diào)度參數(shù),不同周期的觀察者工作絕對(duì)定時(shí)器。這并不意味著觸發(fā)器之間總是有秒的時(shí)間,但只有當(dāng)系統(tǒng)時(shí)間顯示一個(gè)完整的小時(shí)時(shí)才會(huì)調(diào)用回調(diào)。它必須根據(jù)傳遞的時(shí)間值也就是說(shuō),大于或等于第二個(gè)參數(shù)的最低時(shí)間值。

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

根據(jù)偏移、間隔和重新調(diào)度參數(shù),不同周期的觀察者工作

offset

絕對(duì)定時(shí)器。在此模式中,interval = 0reschedule_cb = NULL. 這一次只是簡(jiǎn)單的觸發(fā)在時(shí)鐘時(shí)間偏移,不重復(fù)。當(dāng)時(shí)間跳躍發(fā)生時(shí),它不會(huì)調(diào)整,也就是說(shuō),如果它在2014/01/01運(yùn)行,那么當(dāng)系統(tǒng)時(shí)間達(dá)到或超過(guò)這個(gè)時(shí)間時(shí),它將運(yùn)行。

代碼
執(zhí)行結(jié)果
start : 1529568868
w1: enter:1529568877
w1: end:1529568882
w11: enter:1529568888


# 如果我們吧offset都改成改成當(dāng)前時(shí)間 再執(zhí)行結(jié)果
start : 1529568995
w11: enter:1529568995
w1: enter:1529568995
w1: end:1529569000
interval

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

這并不意味著觸發(fā)器之間總是有3600秒的時(shí)間,但只有當(dāng)系統(tǒng)時(shí)間顯示一個(gè)完整的小時(shí)(UTC)時(shí)才會(huì)調(diào)用回調(diào)。

這可以用來(lái)創(chuàng)建不隨系統(tǒng)時(shí)間漂移的定時(shí)器:

代碼

執(zhí)行結(jié)果
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代碼 并打開(kāi)w2里的sleep(3)執(zhí)行結(jié)果
# 執(zhí)行體時(shí)間 > 間隔時(shí)間
# 我們發(fā)現(xiàn)下一次執(zhí)行時(shí)間是上一次執(zhí)行完成時(shí)間
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代碼 并打開(kāi)w2里的sleep(1)執(zhí)行結(jié)果
# 執(zhí)行體時(shí)間<=間隔時(shí)間
# 我們發(fā)現(xiàn)下一次執(zhí)行時(shí)間是正常間隔后執(zhí)行時(shí)間
w2:enter:1529570098
w2:end:1529570099
w2:enter:1529570100
w2:end:1529570101
w2:enter:1529570102
w2:end:1529570103
w2:enter:1529570104

# 我們打開(kāi)w3里的sleep,然后再執(zhí)行結(jié)果
# 某個(gè)觀察者間隔時(shí)間受執(zhí)行體影響,且多個(gè)觀察者會(huì)互相影響間隔時(shí)間
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
總結(jié)
如果單個(gè)watcher執(zhí)行體時(shí)間 > 間隔時(shí)間,那么下一次執(zhí)行時(shí)間就是執(zhí)行體完成時(shí)間
如果單個(gè)watcher執(zhí)行體時(shí)間 <= 間隔時(shí)間,那么下一次執(zhí)行時(shí)間就是間隔后執(zhí)行時(shí)間
如果多個(gè)watcher,各執(zhí)行體的時(shí)間相互影響對(duì)方

EvPeriodic 將嘗試在這種模式下運(yùn)行回調(diào),在當(dāng)`time = offset ( mod interval )下一個(gè)可能的時(shí)間,不管任何時(shí)間跳躍。

reschedule_cb

手動(dòng)重調(diào)度模式。在這種模式reschedule_cb是可調(diào)用。

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

這個(gè)回調(diào)永遠(yuǎn)不能停止或破壞這個(gè)或任何其他周期性觀察者,并且不能調(diào)用任何事件循環(huán)函數(shù)或方法。停止它會(huì)先返回1000,再停止。一個(gè)EvPrepare觀察者可以用于此任務(wù)。

它必須根據(jù)傳遞的時(shí)間值(也就是說(shuō),大于或等于第二個(gè)參數(shù)的最低時(shí)間值。)返回下一次觸發(fā)。它通常會(huì)在調(diào)用回調(diào)之前被調(diào)用,但也可能在其他時(shí)候被調(diào)用。

代碼

執(zhí)行結(jié)果
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擴(kuò)展信息
Ev support => enabled
Debug support => disabled
Version => 1.0.4
[root@localhost libev]# Version => 1.0.4

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/28881.html

相關(guān)文章

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

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

    XboxYan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<