预定义常量

以下常量由此扩展定义,并且仅在该扩展已编译到 PHP 中或在运行时动态加载时才可用。

返回值。始终检查 GearmanClient::error()GearmanWorker() 以获取字符串错误,因为它可能包含更多详细信息

GEARMAN_SUCCESS (int)
执行的任何操作都已成功。
GEARMAN_IO_WAIT (int)
在非阻塞模式下,遇到将导致阻塞的事件。
GEARMAN_ERRNO (int)
系统错误。检查 GearmanClient::errno()GearmanWorker::errno() 以获取返回的系统错误代码。
GEARMAN_NO_ACTIVE_FDS (int)
GearmanClient::wait()GearmanWorker() 被调用时没有连接。
GEARMAN_UNEXPECTED_PACKET (int)
指示 gearmand 中出现严重错误。仅适用于 GearmanWorker
GEARMAN_GETADDRINFO (int)
DNS 解析失败(无效主机、端口等)。
GEARMAN_NO_SERVERS (int)
在提交作业或任务之前没有调用 GearmanClient::addServer()
GEARMAN_LOST_CONNECTION (int)
在请求期间丢失连接。
GEARMAN_MEMORY_ALLOCATION_FAILURE (int)
内存分配失败(内存不足)。
GEARMAN_SERVER_ERROR (int)
Gearman 服务器出现错误,无法正常处理请求。
GEARMAN_WORK_DATA (int)
使用 GearmanClient::returnCode() 使用 GearmanClient::do() 时获得的通知返回代码。发送到使用来自正在运行的作业的数据更新客户端。当工作程序需要发送更新、发送部分结果或在长时间运行的作业期间刷新数据时,工作程序会使用此方法。
GEARMAN_WORK_WARNING (int)
使用 GearmanClient::returnCode() 使用 GearmanClient::do() 时获得的通知返回代码。使用警告更新客户端。行为与 GEARMAN_WORK_DATA 相同,但应被视为警告而不是正常响应数据。
GEARMAN_WORK_STATUS (int)
使用 GearmanClient::returnCode() 使用 GearmanClient::do() 时获得的通知返回代码。发送到更新长时间运行的作业的状态。使用 GearmanClient::doStatus() 获取任务的完成百分比。
GEARMAN_WORK_EXCEPTION (int)
使用 GearmanClient::returnCode() 使用 GearmanClient::do() 时获得的通知返回代码。表示作业因给定异常而失败。
GEARMAN_WORK_FAIL (int)
使用 GearmanClient::returnCode() 使用 GearmanClient::do() 时获得的通知返回代码。表示作业失败。
GEARMAN_COULD_NOT_CONNECT (int)
无法连接到服务器。
GEARMAN_INVALID_FUNCTION_NAME (int)
尝试注册 NULL 函数名或在不指定回调的情况下使用回调接口。
GEARMAN_INVALID_WORKER_FUNCTION (int)
尝试使用 NULL 回调函数注册函数。
GEARMAN_NO_REGISTERED_FUNCTIONS (int)
当工作程序获取它没有注册的函数的作业时。
GEARMAN_NO_JOBS (int)
对于非阻塞工作程序,当 GearmanWorker::work() 没有活动作业时。
GEARMAN_ECHO_DATA_CORRUPTION (int)
GearmanClient::echo()GearmanWorker::echo() 之后,返回的数据与发送的数据不匹配。
GEARMAN_NEED_WORKLOAD_FN (int)
当客户端选择流式传输任务的工作负载,但没有指定工作负载回调函数时。
GEARMAN_PAUSE (int)
对于非阻塞客户端任务接口,可以从任务回调返回以“暂停”调用并从 GearmanClient::runTasks() 返回。再次调用 GearmanClient::runTasks() 以继续。
GEARMAN_UNKNOWN_STATE (int)
内部客户端/工作程序状态错误。
GEARMAN_SEND_BUFFER_TOO_SMALL (int)
内部错误:尝试在单个原子块中刷新比硬编码缓冲区大小允许的更多数据。
GEARMAN_TIMEOUT (int)
达到客户端/工作程序设置的超时限制。

GearmanClient 选项

GEARMAN_CLIENT_GENERATE_UNIQUE (int)
为每个任务生成一个唯一的 ID (UUID)。
GEARMAN_CLIENT_NON_BLOCKING (int)
以非阻塞模式运行客户端。
GEARMAN_CLIENT_UNBUFFERED_RESULT (int)
允许客户端以块的形式读取数据,而不是让库缓冲整个数据结果并将其传回。
GEARMAN_CLIENT_FREE_TASKS (int)
在任务完成后自动释放任务对象。这是此扩展中的默认设置,以防止内存泄漏。

GearmanWorker 选项

GEARMAN_WORKER_NON_BLOCKING (int)
以非阻塞模式运行工作进程。
GEARMAN_WORKER_GRAB_UNIQ (int)
除了作业句柄之外,还返回客户端分配的唯一 ID。

基本 Gearman 配置

GEARMAN_DEFAULT_TCP_HOST (string)
GEARMAN_DEFAULT_TCP_PORT (int)
GEARMAN_DEFAULT_SOCKET_TIMEOUT (int)
GEARMAN_DEFAULT_SOCKET_SEND_SIZE (int)
GEARMAN_DEFAULT_SOCKET_RECV_SIZE (int)
GEARMAN_MAX_ERROR_SIZE (int)
GEARMAN_PACKET_HEADER_SIZE (int)
GEARMAN_JOB_HANDLE_SIZE (int)
GEARMAN_OPTION_SIZE (int)
GEARMAN_UNIQUE_SIZE (int)
GEARMAN_MAX_COMMAND_ARGS (int)
GEARMAN_ARGS_BUFFER_SIZE (int)
GEARMAN_SEND_BUFFER_SIZE (int)
GEARMAN_RECV_BUFFER_SIZE (int)
GEARMAN_WORKER_WAIT_TIMEOUT (int)

添加备注

用户贡献的备注 5 则备注

ion dot dulgheru at gmail dot com
11 年前
更新(Gearman 0.35)

GEARMAN_NO_REGISTERED_FUNCTION = 33
GEARMAN_NO_REGISTERED_FUNCTIONS = 34
GEARMAN_NO_JOBS = 35
GEARMAN_ECHO_DATA_CORRUPTION = 36
GEARMAN_NEED_WORKLOAD_FN = 37
GEARMAN_PAUSE = 38
GEARMAN_UNKNOWN_STATE = 39
GEARMAN_PTHREAD = 40
GEARMAN_PIPE_EOF = 41
GEARMAN_QUEUE_ERROR = 42
GEARMAN_FLUSH_DATA = 43
GEARMAN_SEND_BUFFER_TOO_SMALL = 44
GEARMAN_IGNORE_PACKET = 45
GEARMAN_UNKNOWN_OPTION = 46
GEARMAN_TIMEOUT = 47
GEARMAN_ARGUMENT_TOO_LARGE = 48
GEARMAN_MAX_RETURN = 49
Shane Harter
14 年前
我在各个地方寻找每个 Gearman 常量的值的转储。最后我在 Gearman 源代码中找到了。

如果你需要回显返回码,你会发现这很有用。

GEARMAN_SUCCESS = 0
GEARMAN_IO_WAIT = 1
GEARMAN_SHUTDOWN = 2
GEARMAN_SHUTDOWN_GRACEFUL = 3
GEARMAN_ERRNO = 4
GEARMAN_EVENT = 5
GEARMAN_TOO_MANY_ARGS = 6
GEARMAN_NO_ACTIVE_FDS = 7
GEARMAN_INVALID_MAGIC = 8
GEARMAN_INVALID_COMMAND = 9
GEARMAN_INVALID_PACKET = 10
GEARMAN_UNEXPECTED_PACKET = 11
GEARMAN_GETADDRINFO = 12
GEARMAN_NO_SERVERS = 13
GEARMAN_LOST_CONNECTION = 14
GEARMAN_MEMORY_ALLOCATION_FAILURE = 15
GEARMAN_JOB_EXISTS = 16
GEARMAN_JOB_QUEUE_FULL = 17
GEARMAN_SERVER_ERROR = 18
GEARMAN_WORK_ERROR = 19
GEARMAN_WORK_DATA = 20
GEARMAN_WORK_WARNING = 21
GEARMAN_WORK_STATUS = 22
GEARMAN_WORK_EXCEPTION = 23
GEARMAN_WORK_FAIL = 24
GEARMAN_NOT_CONNECTED = 25
GEARMAN_COULD_NOT_CONNECT = 26
GEARMAN_SEND_IN_PROGRESS = 27
GEARMAN_RECV_IN_PROGRESS = 28
GEARMAN_NOT_FLUSHING = 29
GEARMAN_DATA_TOO_LARGE = 30
GEARMAN_INVALID_FUNCTION_NAME = 31
GEARMAN_INVALID_WORKER_FUNCTION = 32
GEARMAN_NO_REGISTERED_FUNCTIONS = 33
GEARMAN_NO_JOBS = 34
GEARMAN_ECHO_DATA_CORRUPTION = 35
GEARMAN_NEED_WORKLOAD_FN = 36
GEARMAN_PAUSE = 37
GEARMAN_UNKNOWN_STATE = 38
GEARMAN_PTHREAD = 39
GEARMAN_PIPE_EOF = 40
GEARMAN_QUEUE_ERROR = 41
GEARMAN_FLUSH_DATA = 42
GEARMAN_SEND_BUFFER_TOO_SMALL = 43
GEARMAN_IGNORE_PACKET = 44
GEARMAN_UNKNOWN_OPTION = 45
GEARMAN_MAX_RETURN = 46
michaelhfranze at gmail dot com
9 年前
如果你得到以下错误:

Error 26 GEARMAN_COULD_NOT_CONNECT (integer)

并且你正在运行 SELinux,则需要设置

setsetbool -P http_can_network_connect = 1
y_inaura at hm-solution dot jp
9 年前
从第 33 号开始缺少 retrunCodes。
我认为,正确的 retrunCodes 应该是:

GEARMAN_SUCCESS = 0
GEARMAN_IO_WAIT = 1
GEARMAN_SHUTDOWN = 2
GEARMAN_SHUTDOWN_GRACEFUL = 3
GEARMAN_ERRNO = 4
GEARMAN_EVENT = 5
GEARMAN_TOO_MANY_ARGS = 6
GEARMAN_NO_ACTIVE_FDS = 7
GEARMAN_INVALID_MAGIC = 8
GEARMAN_INVALID_COMMAND = 9
GEARMAN_INVALID_PACKET = 10
GEARMAN_UNEXPECTED_PACKET = 11
GEARMAN_GETADDRINFO = 12
GEARMAN_NO_SERVERS = 13
GEARMAN_LOST_CONNECTION = 14
GEARMAN_MEMORY_ALLOCATION_FAILURE = 15
GEARMAN_JOB_EXISTS = 16
GEARMAN_JOB_QUEUE_FULL = 17
GEARMAN_SERVER_ERROR = 18
GEARMAN_WORK_ERROR = 19
GEARMAN_WORK_DATA = 20
GEARMAN_WORK_WARNING = 21
GEARMAN_WORK_STATUS = 22
GEARMAN_WORK_EXCEPTION = 23
GEARMAN_WORK_FAIL = 24
GEARMAN_NOT_CONNECTED = 25
GEARMAN_COULD_NOT_CONNECT = 26
GEARMAN_SEND_IN_PROGRESS = 27
GEARMAN_RECV_IN_PROGRESS = 28
GEARMAN_NOT_FLUSHING = 29
GEARMAN_DATA_TOO_LARGE = 30
GEARMAN_INVALID_FUNCTION_NAME = 31
GEARMAN_INVALID_WORKER_FUNCTION = 32
GEARMAN_NO_REGISTERED_FUNCTIONS = 34
GEARMAN_NO_JOBS = 35
GEARMAN_ECHO_DATA_CORRUPTION = 36
GEARMAN_NEED_WORKLOAD_FN = 37
GEARMAN_PAUSE = 38
GEARMAN_UNKNOWN_STATE = 39
GEARMAN_PTHREAD = 40
GEARMAN_PIPE_EOF = 41
GEARMAN_QUEUE_ERROR = 42
GEARMAN_FLUSH_DATA = 43
GEARMAN_SEND_BUFFER_TOO_SMALL = 44
GEARMAN_IGNORE_PACKET = 45
GEARMAN_UNKNOWN_OPTION = 46
GEARMAN_MAX_RETURN = 52
匿名
2 年前
有一个 GEARMAN_WORKER_GRAB_JOB_IN_USE 常量,它允许你重试一个已经被同一或其他工作进程退出的作业(以代码 <> 0 不成功退出)。
To Top