GearmanClient::setTimeout

(PECL gearman >= 0.6.0)

GearmanClient::setTimeout设置套接字 I/O 活动超时

描述

public GearmanClient::setTimeout(int $timeout): bool

设置套接字 I/O 活动的超时时间。

参数

timeout

以毫秒为单位的时间间隔

返回值

始终返回 true

添加注释

用户贡献注释 3 个注释

casper at bcx dot nl
6 年前
如果使用此方法设置了超时时间,并且发生了超时,则调用 ->returnCode() 将返回 GEARMAN_TIMEOUT

请注意,例如 doBackground() 调用的超时并不意味着作业未启动。作业很可能已提交并启动,但 gearmand 服务器无法将该信息传回给您。
Ismael Cristal Jr
11 年前
GearmanClient 的默认超时时间为 -1,您需要使用 setTimeout 将其设置为正数,以避免脚本无限期等待运行作业的情况,即使根本没有运行的 worker。
luckyboy449 at yahoo dot com
5 年前
请注意,GEARMAN_TIMEOUT 主要是当您使用 addTask() 和 addTaskBackground() 方法的回调时触发的。如果 Gearman 服务器在大量作业的情况下无法及时响应当前作业的状态,客户端肯定会抛出 GEARMAN_TIMEOUT 错误。

最安全的避免此错误的方法是使用 doBackground() 方法,尤其是在您不关心作业状态(失败或完成)的情况下,这应该是向服务器发送大量作业时的规则。
To Top