Команды и службы Gearman не работают одинаково

Я столкнулся со странной проблемой при тестировании настроек Gearman. Поскольку у меня есть только один ПК и я хотел бы протестировать кроссплатформенные функции Gearman, я установил сервер заданий Gearman на Ubuntu 12.04 на виртуальную коробку в системе Win7 и запустил Worker на Win7. Виртуальный бокс и хост-машина без проблем пингуют друг друга. Вот мой рабочий код:

#!/usr/bin/perl
use Gearman::Worker;

my $worker1 = Gearman::Worker->new;
$worker1->job_servers('10.38.50.158');

# register job
$worker1->register_function( print_task1 => \&print_task1 ); 

$worker1->work while 1; 

sub print_task1{
    my ($job) = @_;
    print "Worker1 starts...\n";
    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
    printf("%d:%d:%d\n",$hour,$min,$sec);
    sleep 10;
    $job->set_status(50,100);
    sleep 10;
    $job->set_status(100,100);
}

И PARAMS в /etc/init.d/gearman-job-server сервера заданий на Ubuntu — это --listen=127.0.0.1 --port=7003.

Когда я запускаю сервер передач на Ubuntu с gearmand -d -p 7003, рабочий может зарегистрироваться на сервере заданий, я подтвердил это, проверив статус сервера. Однако, когда я запускаю сервер gearman sudo service gearman-job-service start, рабочий не может зарегистрироваться.

Не могли бы вы дать несколько советов по этому поводу?


person Community    schedule 11.03.2013    source источник


Ответы (2)


--listen указывает адрес, который сервер должен прослушивать. Если вы используете --listen=127.0.0.1, сервер поймает только рабочую регистрацию локального хоста. Значение по умолчанию — INADDR_ANY, что означает, что сервер будет прослушивать любые машины, если вы оставите этот параметр пустым.

person Community    schedule 14.03.2013

Наконец-то я нашел причину: PARAMS в /etc/init.d/gearman-job-server сервера заданий должно быть только --port=7003, без --listen=127.0.0.1! Я не знаю, в чем здесь проблема, я только что попробовал. Я все еще изучаю Gearman, но я уверен, что ранее совершил довольно глупую ошибку.

person Community    schedule 11.03.2013