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

依然還是出現(xiàn) Alarm Clock(附上源碼)不知道原理,哪位朋友解釋一下啊。

zhouaini528

我有一個(gè)server.php文件
我在主進(jìn)程中使用GlobalData變量共享組件。每0.5秒隨機(jī)賦予$global_client->param一個(gè)數(shù)字,這一切都是正常。

use Workerman\Lib\Timer;
use Workerman\Worker;

$global_server = new GlobalData\Server('127.0.0.1','13145');
$global_client = new GlobalData\Client('127.0.0.1:13145');

$worker = new Worker();
$worker->onWorkerStart = function() use($global_client) {
    //每0.5秒隨機(jī)設(shè)置一個(gè)數(shù)
    Timer::add(0.5, function() use ($global_client){
        $global_client->param=rand(1,999999);
    });
};

Worker::runAll();

我有一個(gè)client.php文件
如果不要while循壞,我再cli模式下能正常獲取數(shù)據(jù),但是加了while循環(huán)幾次后就會(huì)出現(xiàn)Alarm Clock,我不知道是什么原因。 哪個(gè)朋友能給我說(shuō)明一下原理嗎?
用for循環(huán)10次也會(huì)報(bào)這樣的錯(cuò)誤

$global_client = new GlobalData\Client('127.0.0.1:13145');
while (1){
    sleep(1);
    print_r($global_client->param);
}

如果用Timer方式循環(huán)可以解決問(wèn)題, 就是我想知道原理是什么?為什么會(huì)這樣?

我的理解GlobalData變量共享組件 好比數(shù)據(jù)庫(kù),我while就是不停的連接數(shù)據(jù)庫(kù),但是沒(méi)成功~不知道原理

4336 2 0
2個(gè)回答

MakeHui

workerman 不允許這種寫(xiě)法,文檔中有說(shuō)明: http://doc.workerman.net/329713

  • zhouaini528 2021-06-08

    文檔中寫(xiě)的不要有死循環(huán),那么我不用while true 我就for 10次 也一樣出現(xiàn)這樣的問(wèn)題

  • nitron 2021-06-08

    不能用sleep

  • nitron 2021-06-08

    沒(méi)記錯(cuò)的話(huà),Client應(yīng)該在OnXxxxx方法里實(shí)例化

  • nitron 2021-06-08

    文檔里:"如果在Workerman環(huán)境中使用GlobalData/Client,請(qǐng)?jiān)趏nXXX回調(diào)中實(shí)例化GlobalData/Client對(duì)象,例如在onWorkerStart中實(shí)例化。"

  • zhouaini528 2021-06-08

    @8001:明白了,就是不知道原理。

phpcreeper

背后原因:

https://github.com/walkor/GlobalData/blob/master/src/Client.php#L74
https://github.com/walkor/Workerman/blob/master/Timer.php#L127

追蹤源碼上述源碼可以發(fā)現(xiàn)定時(shí)器觸發(fā)了pcntl_alarm(1)行為,即1秒后觸發(fā)了時(shí)鐘信號(hào),默認(rèn)會(huì)終止當(dāng)前進(jìn)程。

解決方案:

目前尚不清楚Timer這里的pcntl_alarm(1)的影響,不過(guò)按照你這while寫(xiě)法【目測(cè)你這是非workerman環(huán)境用法】,原理理解了、客戶(hù)端可以暫時(shí)通過(guò)屏蔽時(shí)鐘信號(hào)這樣去解決:pcntl_alarm(0); 此外樓上提及的注意事項(xiàng)也要關(guān)注。

  • zhouaini528 2021-06-09

    謝謝你的回復(fù),對(duì)我?guī)椭浅4?/p>

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