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

為什么始終只有一個(gè)進(jìn)程接收請(qǐng)求

pader

我在使用過(guò)程中發(fā)現(xiàn)自己不管怎么試,所有請(qǐng)求都打在一個(gè)進(jìn)程上面。

然后自己寫了個(gè)簡(jiǎn)單的示例,使用 sleep() 阻塞住進(jìn)程,哪怕其中一個(gè)進(jìn)程阻塞了,其它的請(qǐng)求依然打在這個(gè)進(jìn)程上面,其它進(jìn)程全部旁觀。

我知道瀏覽器會(huì)保持連接,于是我打開多個(gè)不同的瀏覽器,還是這樣。
我使用 curl 命令試了還是這樣。

示例代碼:

<?php

use Workerman\Worker;

require __DIR__.'/vendor/autoload.php';

$worker = new Worker('http://0.0.0.0:2346');
$worker->count = 2;
$worker->onMessage = function($connection, $request) {
    sleep(5);
    $connection->send('Block sleep 5 seconds.');
};

Worker::runAll();

不管怎么試,都只有一個(gè)進(jìn)程接收了請(qǐng)求,我用兩個(gè)瀏覽器,用 curl 命令,或者在兩臺(tái)IP不同的機(jī)器上發(fā)起,都是這樣。

3088 5 0
5個(gè)回答

walkor 打賞

操作系統(tǒng)是?

  • 暫無(wú)評(píng)論
pader

Windows WSL2 的 Ubuntu,還有 FreeBSD。
截圖是 FreeBSD 的,都一樣。

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

WSL2 的reusePort有bug。
設(shè)置 $worker->reusePort = false; 就好了

  • 暫無(wú)評(píng)論
pader

reusePort默認(rèn)是關(guān)的吧?

  • walkor 2020-10-06

    默認(rèn)開的

  • pader 2020-10-06

    FreeBSD不是WSL2中的啊,F(xiàn)reeBSD11.3是物理機(jī)中的。

pader

確實(shí)我關(guān)閉 reusePort 就好了,這個(gè)原來(lái)會(huì)自動(dòng)判斷在 Linux 上啟用 reusePort,在 FreeBSD 上也被認(rèn)為是 Linux 了。
好像除了 Windows 其它系統(tǒng)均被認(rèn)為是 Linux,我很好奇為什么不用 PHP_OS 常量來(lái)做操作系統(tǒng)判斷,而是用目錄分割符來(lái)做判斷。
這一塊應(yīng)該可以做的更好一點(diǎn),另外 FreeBSD 的環(huán)境跟 MacOS 其實(shí)類似,希望把 FreeBSD 也考慮進(jìn)去。

  • walkor 2020-10-06

    有判斷php_uname('s'),你看下你的系統(tǒng)里php_uname('s')返回的是什么。

  • pader 2020-10-06

    @1:FreeBSD 中與 PHP_OS 返回的一樣,都是 "FreeBSD"

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