2024 年 PHP 日本大会

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
7 年前
如果使用此方法设置超时,并且发生超时,则调用 ->returnCode() 将返回 GEARMAN_TIMEOUT

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

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