Клиент Gearman не запускается

Мне удалось успешно установить gearman на сервере Amazon AWS, а также расширение PHP для gearman. Я запускаю свою настройку в следующие шаги:

  1. Запустить сервер Gearmand
  2. Запустите работника и дождитесь работы
  3. Запустите клиент и отправьте задания на сервер

Однако процесс не работает. Я думаю, что это застревает в клиенте gearman. Ниже приведен мой простой код для клиента, сервера и работника (наряду с выводом файла журнала и выводом выполнения)

Код клиента:

<?php

$client = new GearmanClient();
$client->addServer('localhost', 4730);

$arguments = array(
'url' => 'http://localhost/hit.php',
);

$client->addTask('fetchURL', json_encode($arguments));

print "running tasks";

if(!$client->runTasks())
{
echo "ERROR " . $client->error() . "\n";
exit;
}
else
print "task done";

echo "DONE";

Рабочий код:

<?php
$worker = new GearmanWorker();
$worker->addServer("localhost", 4730);
$worker->addFunction("fetchURL", "fetch_url");

print "Waiting for job...\n";
while($worker->work())
{
if ($worker->returnCode() != GEARMAN_SUCCESS)
{
echo "return_code: " . $worker->returnCode() . "\n";
break;
}
}

function fetch_url($job)
{
print "function called...\n";
$arguments = json_decode($job->workload(),TRUE);

if (!empty($arguments['url']))
{
print("Fetching " . $arguments['url'] . "\n");
return file_get_contents($arguments['url']);
}
}

Выход сервера:

введите описание изображения здесь

Рабочий выход:

введите описание изображения здесь

Выход клиента:

введите описание изображения здесь

Вывод файла журнала:

DEBUG 2016-09-02 12:06:38.848867 [  main ] THREADS: 4 -> libgearman-server/gearmand.cc:263
INFO 2016-09-02 12:06:38.848911 [  main ] Initializing Gear on port 4730 with SSL: false
INFO 2016-09-02 12:06:38.848956 [  main ] Starting up with pid 28079, verbose is set to DEBUG
DEBUG 2016-09-02 12:06:38.848997 [  main ] Method for libevent: epoll -> libgearman-server/gearmand.cc:362
DEBUG 2016-09-02 12:06:38.849036 [  main ] Trying to listen on 127.0.0.1:4730 -> libgearman-server/gearmand.cc:639
INFO 2016-09-02 12:06:38.849056 [  main ] Listening on 127.0.0.1:4730 (9)
DEBUG 2016-09-02 12:06:38.849064 [  main ] Creating wakeup pipe -> libgearman-server/gearmand.cc:903
DEBUG 2016-09-02 12:06:38.849069 [  main ] Creating 4 threads -> libgearman-server/gearmand.cc:376
DEBUG 2016-09-02 12:06:38.849076 [  main ] Initializing libevent for IO thread -> libgearman-server/gearmand_thread.cc:207
DEBUG 2016-09-02 12:06:38.849090 [  main ] Creating IO thread wakeup pipe -> libgearman-server/gearmand_thread.cc:478
DEBUG 2016-09-02 12:06:38.849119 [  main ] Thread 1 created -> libgearman-server/gearmand_thread.cc:256
DEBUG 2016-09-02 12:06:38.849149 [  main ] Initializing libevent for IO thread -> libgearman-server/gearmand_thread.cc:207
DEBUG 2016-09-02 12:06:38.849164 [  main ] Creating IO thread wakeup pipe -> libgearman-server/gearmand_thread.cc:478
DEBUG 2016-09-02 12:06:38.849183 [  main ] Thread 2 created -> libgearman-server/gearmand_thread.cc:256
DEBUG 2016-09-02 12:06:38.849189 [  main ] Initializing libevent for IO thread -> libgearman-server/gearmand_thread.cc:207
DEBUG 2016-09-02 12:06:38.849206 [  main ] Creating IO thread wakeup pipe -> libgearman-server/gearmand_thread.cc:478
DEBUG 2016-09-02 12:06:38.849225 [  main ] Thread 3 created -> libgearman-server/gearmand_thread.cc:256
DEBUG 2016-09-02 12:06:38.849230 [  main ] Initializing libevent for IO thread -> libgearman-server/gearmand_thread.cc:207
DEBUG 2016-09-02 12:06:38.849245 [  main ] Creating IO thread wakeup pipe -> libgearman-server/gearmand_thread.cc:478
DEBUG 2016-09-02 12:06:38.849268 [  main ] Thread 4 created -> libgearman-server/gearmand_thread.cc:256
DEBUG 2016-09-02 12:06:38.849273 [  main ] replaying queue: begin -> libgearman-server/gearmand.cc:389
DEBUG 2016-09-02 12:06:38.849276 [  main ] __replay -> libgearman-server/plugins/queue/default/queue.cc:101
DEBUG 2016-09-02 12:06:38.849279 [  main ] replaying queue: end -> libgearman-server/gearmand.cc:395
INFO 2016-09-02 12:06:38.849282 [  main ] Adding event for listening socket (9)
DEBUG 2016-09-02 12:06:38.849285 [  main ] Adding event for wakeup pipe -> libgearman-server/gearmand.cc:956
DEBUG 2016-09-02 12:06:38.849288 [  main ] Entering main event loop -> libgearman-server/gearmand.cc:404
DEBUG 2016-09-02 12:06:38.849336 [     2 ] Entering thread event loop -> libgearman-server/gearmand_thread.cc:446
DEBUG 2016-09-02 12:06:38.849361 [     3 ] Entering thread event loop -> libgearman-server/gearmand_thread.cc:446
DEBUG 2016-09-02 12:06:38.849379 [     4 ] Entering thread event loop -> libgearman-server/gearmand_thread.cc:446
DEBUG 2016-09-02 12:06:38.849412 [     1 ] Entering thread event loop -> libgearman-server/gearmand_thread.cc:446
DEBUG 2016-09-02 12:06:38.849422 [  main ] staring up Epoch thread -> libgearman-server/timer.cc:61DEBUG 2016-09-02 12:06:38.855568 [  main ] accept() 32 -> libgearman-server/gearmand.cc:862
INFO 2016-09-02 12:06:38.855580 [  main ] Accepted connection from 127.0.0.1:33071
DEBUG 2016-09-02 12:06:38.855593 [     4 ] Received CON wakeup event -> libgearman-server/gearmand_thread.cc:605
DEBUG 2016-09-02 12:06:38.855602 [     4 ] setsockopt() fd:32 -> libgearman-server/io.cc:833
DEBUG 2016-09-02 12:06:38.855613 [     4 ]       127.0.0.1:33071 Watching  POLLIN  -> libgearman-server/gearmand_thread.cc:151

DEBUG 2016-09-02 12:09:30.885913 [  main ] accept() 33 -> libgearman-server/gearmand.cc:862
INFO 2016-09-02 12:09:30.885943 [  main ] Accepted connection from 127.0.0.1:33073
DEBUG 2016-09-02 12:09:30.885969 [     3 ] Received CON wakeup event -> libgearman-server/gearmand_thread.cc:605
DEBUG 2016-09-02 12:09:30.885983 [     3 ] setsockopt() fd:33 -> libgearman-server/io.cc:833
DEBUG 2016-09-02 12:09:30.885993 [     3 ]       127.0.0.1:33073 Watching  POLLIN  -> libgearman-server/gearmand_thread.cc:151DEBUG 2016-09-02 12:09:34.144611 [  main ] accept() 34 -> libgearman-server/gearmand.cc:862
INFO 2016-09-02 12:09:34.144634 [  main ] Accepted connection from 127.0.0.1:33075
DEBUG 2016-09-02 12:09:34.144650 [     2 ] Received CON wakeup event -> libgearman-server/gearmand_thread.cc:605
DEBUG 2016-09-02 12:09:34.144662 [     2 ] setsockopt() fd:34 -> libgearman-server/io.cc:833
DEBUG 2016-09-02 12:09:34.144673 [     2 ]       127.0.0.1:33075 Watching  POLLIN  -> libgearman-server/gearmand_thread.cc:151

Я поместил пробелы в журналы, чтобы обозначить точки, с которых начинается рабочий & клиент запускается Из журналов видно, что клиент также ведет себя как рабочий (или рабочий, как клиент), так как кажется, что нет разницы между транзакциями журнала для рабочего или клиента. Я не уверен, что транзакции журнала должны быть более понятными, но мне это кажется странным.

Кроме того, мой клиент gearman не выходит. что странно

Ничего не происходит после этого. Я что-то не так делаю? Это коллективное понимание, которое я получил, прочитав несколько учебных пособий о механизме онлайн, однако я все еще не могу заставить его работать. Любая помощь будет оценена.

0

Решение

Мне удалось решить проблему. Это было так же просто, как изменить localhost на 127.0.0.1 в client.php и worker.php

Не уверен, почему, но это сработало. Если у кого-нибудь есть объяснение этому, я был бы рад узнать 🙂

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector