Что вызывает предупреждение: GearmanClient::runTasks(): Не удалось вызвать функцию в сообщении?

Начал использовать Gearman для запуска задач через несколько воркеров. Я получаю следующее сообщение:

Предупреждение: GearmanClient::runTasks(): не удалось вызвать функцию в ....php в строке 192.

Строка номер 192 содержит следующее: class Client extends \GearmanClient { //... $this->setCompleteCallback(...); $this->добавитьTast(...); //... $this->addTast(...); $this->runTasks(); // это строка #192 //... }

Что может быть причиной этого сообщения?


person Csongor Halmai    schedule 06.07.2016    source источник


Ответы (1)


После некоторого расследования выяснилось, что callback-функция, которая вызывается, когда worker заканчивает свою задачу, вызывает проблему.

Если из функции обратного вызова возникает исключение, оно вызывает указанное выше сообщение.

Решение состояло в том, чтобы изменить функцию обратного вызова, которая должна была собирать результаты каждого работника. Теперь вместо того, чтобы генерировать исключение, он сохраняет описание проблемы в списке результатов.

person Csongor Halmai    schedule 06.07.2016