CakeFest 2024: The Official CakePHP Conference

Предопределённые константы

Модуль определяет перечисленные ниже константы и открывает к ним доступ только тогда, когда модуль либо собрали в 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)
Означает, что что-то пошло совсем не так, как должно было. Применимо только к 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(). Выполняющий задание обработчик (worker) посылает этот код, когда ему требуется обновить данные на клиенте, передать часть результатов работы или сбросить данные во время выполнения долгих заданий.
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 в качестве имени функции или при использовании callback-интерфейса без указания callback-функций.
GEARMAN_INVALID_WORKER_FUNCTION (int)
Попытка зарегистрировать в обработчике функцию, передавая NULL в качестве callback-функции.
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)
Когда клиент выбрал потоковый режим передачи данных для обработки, но не задал callback-функцию для обработки данных из этого потока.
GEARMAN_PAUSE (int)
При работе в неблокирующем режиме, это значение может вернуть callback-функция, чтобы приостановить обработку задания и выйти из метода GearmanClient::runTasks(). Чтобы продолжить работу, следует ещё раз вызвать метод GearmanClient::runTasks().
GEARMAN_UNKNOWN_STATE (int)
Внутренняя ошибка клиента/обработчика.
GEARMAN_SEND_BUFFER_TOO_SMALL (int)
Внутренняя ошибка: попытка передать больше данных, чем помещается в один чанк. Размеры буфера жёстко заданы и не подлежат изменению.
GEARMAN_TIMEOUT (int)
Превышено время ожидания, заданный клиентом/обработчиком.

Настройки GearmanClient:

GEARMAN_CLIENT_GENERATE_UNIQUE (int)
Создавать уникальный идентификатор (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)
Возвращать клиенту уникальный идентификатор в дополнение к дескриптору задания.

Базовая конфигурация 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)

add a note

User Contributed Notes 5 notes

up
7
ion dot dulgheru at gmail dot com
11 years ago
an update (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
up
4
Shane Harter
13 years ago
I looked everywhere for for a dump of the values of each of the gearman constants. I ended up in the gearman source.

You'll find this useful if you ever just echo the return code.

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
up
1
michaelhfranze at gmail dot com
8 years ago
If you are getting

Error 26 GEARMAN_COULD_NOT_CONNECT (integer)

and you are running SELinux then you need to set

setsetbool -P http_can_network_connect = 1
up
1
y_inaura at hm-solution dot jp
8 years ago
retrunCodes is missed from No.33 .
I think , Correct retrunCodes are this.

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
up
0
Anonymous
1 year ago
There is an GEARMAN_WORKER_GRAB_JOB_IN_USE constant that allows you to retry a job that has been exited by same or another worker (exited unsuccessfully width code <> 0)
To Top