不是“僵死”,也不是“睡眠”,类似“挂起”,但又kill不掉,只能-9杀掉……想来想去还是用“死锁”形容比较恰当些。
查找了下原因,是由于使用了Gearman扩展,php作为Client调用Worker未手动设置超时时间,调用不可访问的地址后造成php-cgi进程无限期占用,导致进程耗尽(不是资源耗尽)。
解决方法:当然是设定个超时时间了。
GearmanClient::setTimeout该方法可以设置毫秒级的超时时间(厄……介超时的精度挺高啊~)。
BTW:php自身的timeout为啥子对此不起作用尼??
本文描述了一个由Gearman扩展引发的死锁问题,详细解释了当PHP客户端调用不可访问的Worker且未设置超时时间时,如何导致php-cgi进程被无限期占用。文章最后给出了通过设置超时时间来解决问题的方法。
8988

被折叠的 条评论
为什么被折叠?



