有兩個(gè)角色 A,B
A 服務(wù)器 用 tp5.1搭建
B 用webman搭建
當(dāng)我用A 去請(qǐng)求B的時(shí)候 A 提示會(huì)超時(shí).(并發(fā)情況下)
可是單獨(dú)壓力測(cè)試B 毫無(wú)問(wèn)題
A用的是 curl請(qǐng)求,
現(xiàn)在A 時(shí)不時(shí)提示請(qǐng)求B 超時(shí),請(qǐng)問(wèn)大佬我如何查找問(wèn)題
我設(shè)置了A 的curl的超時(shí)時(shí)間為30s,將curlerror 存入日志發(fā)現(xiàn)提示是Operation timed out after 30001 milliseconds with 0 out of 0 bytes received 這個(gè)原因
現(xiàn)在不知道怎么解決了 ,求大佬指導(dǎo)
有沒(méi)有一種可能,我是說(shuō)可能啊,是A的問(wèn)題?
是極有可能的,可是都已經(jīng)走到發(fā)請(qǐng)求那步了,之前壓測(cè)tp確實(shí)他會(huì)阻塞掉,可是tp 這邊有什么好的辦法解決嗎,只能同步請(qǐng)求 B,無(wú)法異步 因?yàn)闃I(yè)務(wù)需要 A 必須在請(qǐng)求內(nèi)拿到東西
[06-Nov-2023 11:28:24] WARNING: [pool www] child 28465, script '....../index.php' (request: "POST /index.php?s=A中的路由") executing too slow (31.949126 sec), logging
[06-Nov-2023 11:28:24] NOTICE: child 21156 stopped for tracing
A這邊是報(bào)這個(gè)錯(cuò)誤我看了下
線上頻繁出現(xiàn)A調(diào)用超時(shí)的時(shí)候,你去webman 運(yùn)行 php start.php status 命令結(jié)果看看,是否都是處于[busy]狀態(tài),如果都是[idle]的狀態(tài),那么就是A調(diào)用過(guò)程中有問(wèn)題,要不就是A的問(wèn)題。如果webman[busy]狀態(tài),那就是webman的鍋。
把curl用webman獨(dú)立出來(lái),不影響其他代碼