国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

注意事項

定時器使用注意事項

1、只能在onXXXX回調(diào)中添加定時器。全局的定時器推薦在onWorkerStart回調(diào)中設(shè)置,針對某個連接的定時器推薦在onConnect中設(shè)置。

2、添加的定時任務(wù)在當前進程執(zhí)行(不會啟動新的進程或者線程),繁重的任務(wù)可能會影響當前進程執(zhí)行其它任務(wù),所以最好將耗時的任務(wù)放到單獨的進程運行,例如建立一個/多個Worker進程運行

3、當前進程沒有開啟swoole/swow協(xié)程的情況下,當前進程忙于其它業(yè)務(wù)時或者當一個任務(wù)沒有在預(yù)期的時間運行完,這時又到了下一個運行周期,則會等待當前任務(wù)完成才會運行,這會導(dǎo)致定時器沒有按照預(yù)期時間間隔運行。也就是說當前進程的業(yè)務(wù)都是串行執(zhí)行的,如果是多進程則進程間的任務(wù)運行是并行的。

4、需要注意多進程設(shè)置了定時任務(wù)造可能會造成并發(fā)問題,例如下面的代碼每秒會打印5次。

$worker = new Worker();
// 5個進程
$worker->count = 5;
$worker->onWorkerStart = function(Worker $worker) {
    // 5個進程,每個進程都有一個這樣的定時器
    Timer::add(1, function(){
        echo "hi\r\n";
    });
};
Worker::runAll();

如果只想要一個進程運行定時器,參考Timer::add 示例2

5、可能會有1毫秒左右的誤差。

6、定時器不能跨進程刪除,例如a進程設(shè)置的定時器無法在b進程直接調(diào)用Timer::del接口刪除

7、不同進程間的定時器id可能會重復(fù),但是同一個進程內(nèi)產(chǎn)生的定時器id不會重復(fù)

8、更改系統(tǒng)時間后會影響定時器的行為,所以更改系統(tǒng)時間后建議restart重啟

編輯于2025-04-13 11:10:05 完善本頁 +發(fā)起討論
贊助商