一、服務(wù)端
成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站十年經(jīng)驗(yàn)成就非凡,專業(yè)從事成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,成都網(wǎng)頁(yè)設(shè)計(jì),成都網(wǎng)頁(yè)制作,軟文營(yíng)銷,廣告投放平臺(tái)等。十年來(lái)已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:18980820575,我們期待您的來(lái)電!
0. swoole常用的配置項(xiàng):
daemonize = true 守護(hù)進(jìn)程化
worker_num #swoole配置參數(shù) 設(shè)置啟動(dòng)的Worker進(jìn)程數(shù): 如 1 個(gè)請(qǐng)求耗時(shí) 100ms,要提供 1000QPS 的處理能力,那必須配置 100 個(gè)進(jìn)程或更多。
reactor_num #線程數(shù)
task_worker_num #配置 Task 進(jìn)程的數(shù)量
1. 幾個(gè)重要的id:
$server->master_pid #主進(jìn)程的 PID 跟pid_file文件存放的PID、netstat -tlunp | grep 6998 中的PID保持一致
$fd 客戶端連接的唯一標(biāo)識(shí)符
$server->manager_pid #當(dāng)前服務(wù)器管理進(jìn)程的 PID ??? 與master_pid的區(qū)別 管理進(jìn)程與主進(jìn)程的區(qū)別
$server->worker_id #獲得當(dāng)前Worker進(jìn)程編號(hào), 包括Task進(jìn)程 Worker進(jìn)程的范圍是[0, worker_num - 1]; Task進(jìn)程范圍 [worker_num, worker_num + task_worker_num -1 ] 要深刻理解這兩個(gè)范圍
$server->worker_pid #得到Worker進(jìn)程的操作系統(tǒng)進(jìn)程ID 與posix_getpid() 的返回值相同 如worker_id = 0 則 worker_pid =
2. 其他屬性
$server->taskworker #當(dāng)前進(jìn)程是否是Task進(jìn)程 true Task進(jìn)程 / false Worker進(jìn)程
$server->connections #連接跌代器 和 $server->getClientList()一致, connections不是數(shù)組或?qū)ο? 只能用foreach訪問(wèn), 里面存的是$fd
3. 定時(shí)器
/*延時(shí)執(zhí)行*/
$after = Timer::after(,function () use ($server,$fd){ $server->send($fd, 'abc'); }); /*定時(shí)器*/ $i = 0; $timer = Timer::tick(1000,function ($timerId) use (&$i,$server,$fd,$after){ $i++; $server->send($fd, $i); if ($i==8) Timer::clear($after); if ($i==10) Timer::clear($timerId); });