Возможно ли отправить данные от рабочего ретранслятора, работающего в фоновом режиме (с помощью PHP)?
Я знаю, что я могу передать статус (числитель / знаменатель) клиенту, но мне нужно «вернуть» данные.
Фон состоит в том, что мне нужно вызвать рабочих на разных серверах, и если они не отвечают, основной сценарий должен продолжаться. Поэтому я думаю, что я должен заводить рабочих в фоновом режиме. Но мне нужны некоторые данные.
ОБНОВЛЕНИЕ: Кажется, это невозможно. Я думаю, что мне нужно либо хранить данные в общей базе данных, либо записывать их с удаленного сервера на локальный сервер, либо читать с удаленного сервера, либо делать что-то вроде этого:
shell_exec('gearman -f getdata-192-168-200-1 > /my/path/ 2>&1 & echo $!');
Я думаю, вы можете передать данные от рабочего клиенту, используя следующую функцию
GearmanJob::sendData($result);
Предоставляя данные в переменной $ result, а также вы можете обрабатывать эти данные в клиенте, используя функцию
GearmanClient::setDataCallback("task_data"); function task_data($task) { echo "DATA: " . $task->data() . "\n"; }
Вы можете получить дополнительную информацию
http://www.php.net/manual/en/gearmanclient.setdatacallback.php