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

嚴(yán)重bug,定時(shí)器阻塞了端口監(jiān)聽!怎么辦?

dingfei

1.只開啟了一個(gè)線程。同時(shí)有定時(shí)器任務(wù)和端口監(jiān)聽
2.定時(shí)器每一秒執(zhí)行一次。但是代碼會(huì)執(zhí)行2秒,導(dǎo)致定時(shí)器接連不斷的運(yùn)行,端口發(fā)來的數(shù)據(jù)無法響應(yīng)。
怎么辦?怎么實(shí)現(xiàn):定時(shí)器執(zhí)行完一次之后,先處理端口的任務(wù)然后再執(zhí)行下一次定時(shí)器任務(wù) ?
?
代碼:


$inner_http_worker = new Worker('http://0.0.0.0:1598');
$inner_http_worker->count = 1; //進(jìn)程數(shù)

// 當(dāng)http客戶端發(fā)來數(shù)據(jù)時(shí)觸發(fā)添加任務(wù)
$inner_http_worker->onMessage = array($this, 'onMessage');
//$inner_http_worker->onMessage = function ($http_connection, $data) {
$inner_http_worker->onWorkerStart = array($this, 'onWorkerStart');

// 執(zhí)行監(jiān)聽

$inner_http_worker->listen();
Worker::runAll();
    public function onWorkerStart(){
        Timer::add(1, array($this, 'workerloop'),[],true);
    }

    /**
     * 監(jiān)聽techs
     */
    public function onMessage($http_connection, $data){
                  echo  '收到下載數(shù)據(jù)的請求,';
    }
    /**
     * 定時(shí)執(zhí)行任務(wù)
     */
    public function workerloop(){
        echo "每1秒執(zhí)行一次';
        sleep(2);
    }
?```
?
?
3565 1 0
1個(gè)回答

抽不完的寂寞

把定時(shí)任務(wù)丟其它進(jìn)程去做。
定時(shí)任務(wù)這么慢當(dāng)然不能和socket請求放一起執(zhí)行

  • dingfei 2019-05-07

    必須要放一起。接收socket請求就是為了改變定時(shí)器里面的變量

  • dingfei 2019-05-07

    定時(shí)器里面加載了一個(gè)大型數(shù)組,占用內(nèi)存5個(gè)G,需要通過發(fā)送socker請求去改變里面的變量。怎么辦?怎么讓進(jìn)程運(yùn)行一次定時(shí)任務(wù)之后 優(yōu)先處理socker 請求?

  • 抽不完的寂寞 2019-05-07

    定時(shí)器由無限執(zhí)行改成一次性定時(shí)器,一次性定時(shí)器里面在結(jié)束的時(shí)候再次添加下一次要執(zhí)行的一次性定時(shí)器,這樣估計(jì)可以

  • dingfei 2019-05-12

    @2710:牛逼,非常好。這樣是解決了問題。

  • dingfei 2019-05-12

    @2710: 不過這樣有一個(gè)問題,需要定時(shí)執(zhí)行的代碼會(huì)大大延后。 如何可以多進(jìn)程并發(fā),多個(gè)進(jìn)程可以共享這5G的內(nèi)存中的數(shù)組?

  • 抽不完的寂寞 2019-06-27

    這種單進(jìn)程就好了吧,多進(jìn)程共享數(shù)據(jù)在寫數(shù)據(jù)和讀數(shù)據(jù)的時(shí)候都要加鎖,性能很差的,可能還沒但進(jìn)程性能高。

年代過于久遠(yuǎn),無法發(fā)表回答
??