第三方扩展超时导致的php-cgi进程死锁

不是“僵死”,也不是“睡眠”,类似“挂起”,但又kill不掉,只能-9杀掉……想来想去还是用“死锁”形容比较恰当些。

查找了下原因,是由于使用了Gearman扩展,php作为Client调用Worker未手动设置超时时间,调用不可访问的地址后造成php-cgi进程无限期占用,导致进程耗尽(不是资源耗尽)。

解决方法:当然是设定个超时时间了。

GearmanClient::setTimeout 该方法可以设置毫秒级的超时时间(厄……介超时的精度挺高啊~)。

BTW:php自身的timeout为啥子对此不起作用尼??

你可能感兴趣的:(PHP,kill,扩展)