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

Event::onWorkerStart執(zhí)行耗時(shí)操作

osacar

當(dāng)前的設(shè)計(jì)是這樣的:在workerman-chat的Event::onWorkerStart中設(shè)置一個(gè)定時(shí)器,定時(shí)去獲取各個(gè)訂單的運(yùn)單狀態(tài)(根據(jù)快遞公司的API來獲取)。如果運(yùn)單狀態(tài)有更新則直接當(dāng)作聊天記錄發(fā)送給用戶和商家(項(xiàng)目與gateway通信這個(gè)已經(jīng)修好,再次感謝walkor)。

gateway手冊(cè)上說“不要在onWorkerStart內(nèi)執(zhí)行長(zhǎng)時(shí)間阻塞或者耗時(shí)的操作”。
示例代碼如下:

public static function onWorkerStart(){
        // 每1小時(shí)執(zhí)行一次
        $time_interval = 3600;
        Timer::add($time_interval, 'check_express', array(), false);
    }

請(qǐng)問,check_express()是一比較耗時(shí)的操作,像上面的設(shè)計(jì)會(huì)有阻塞影響么?

3698 4 0
4個(gè)回答

walkor 打賞

定時(shí)器影響不大,GatewayWorker中onWorkerStart不允許有長(zhǎng)時(shí)間阻塞操作是為了讓businessWorker與Gateway之間能快速鏈接,只有businessWorker與Gateway之間建立起通訊鏈接,整個(gè)系統(tǒng)才能使用。否則會(huì)有SendBufferToWorker fail. The connections between Gateway and BusinessWorker are not ready錯(cuò)誤

  • 暫無評(píng)論
walkor 打賞

不過即使定時(shí)器不影響businessWorker與Gateway之間建立起通訊鏈接,由于定時(shí)器的任務(wù)正在執(zhí)行時(shí)當(dāng)前進(jìn)程無法處理其它業(yè)務(wù)請(qǐng)求,如果任務(wù)執(zhí)行時(shí)間很長(zhǎng),會(huì)導(dǎo)致這個(gè)進(jìn)程的請(qǐng)求排隊(duì)等待。

  • 暫無評(píng)論
osacar

我可不可以這樣理解,因?yàn)閛nWorkerStart只在啟動(dòng)時(shí)執(zhí)行一次。在onWorkerStart里設(shè)置定時(shí)器只是為了觸發(fā)定時(shí)啟動(dòng)而已,并且系統(tǒng)啟動(dòng)時(shí)還沒有達(dá)到執(zhí)行業(yè)務(wù)時(shí)間。那么只要在定時(shí)間隔內(nèi)(這里是一個(gè)小時(shí),我覺得這個(gè)任務(wù)應(yīng)該是幾秒內(nèi)就能完成)完成了check_express()里的業(yè)務(wù)就不會(huì)對(duì)整個(gè)聊天系統(tǒng)有影響?

  • 暫無評(píng)論
walkor 打賞

可以這么理解

  • 暫無評(píng)論
年代過于久遠(yuǎn),無法發(fā)表回答
??