微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Gearman doBackground()无法与php一起使用

我在本地系统上使用ubuntu 12.04 64位,PHP 5.3.10,Gearman 1.1.5运行.
以下代码

print gearman_version() . "\n";

抛出PHP警告

PHP Warning: Module ‘gearman’ already loaded in UnkNown on line 0

我也使用以下命令构建了yii控制台应用程序WorkerAdminCommand.PHP

<?PHP
class WorkerAdminCommand extends CConsoleCommand {

public function run() {

    $gmworker = new GearmanWorker();
    $gmworker->addServer(); // also tried with $gmworker->addServer('127.0.0.1:4730');
    $gmworker->addFunction("getMyFunc", array($this, "getMyFunc"));
    print "Waiting for job...\n";
    while ($gmworker->work()) {
        if ($gmworker->returnCode() != GEARMAN_SUCCESS) {
            echo "return_code: " . $gmworker->returnCode() . "\n";
            break;
        }
    }
}

public function getMyFunc($job) {
     echo "start \n";
  // long task 
     echo "\n end \n";
}

}
?>

和AdminCommand.PHP

<?PHP

class AdminCommand extends CConsoleCommand {

public function run($args) {
    $gmclient = new GearmanClient();
    $gmclient->addServer();

    echo "Sending job\n";
    $data =  $args[0];
    $result = $gmclient->dobackground("getMyFunc", $data);

    # Check for varIoUs return packets and errors.
    switch ($gmclient->returnCode()) {
        case GEARMAN_WORK_STATUS:
        list($numerator, $denominator) = $gmclient->doStatus();
        echo "Status: $numerator/$denominator complete\n";
        break;
        case GEARMAN_WORK_FAIL:
        echo "Failed\n";
        exit;
        case GEARMAN_SUCCESS:
        echo "Job process successfully\n";
        break;
        default:
        echo "RET: " . $gmclient->returnCode() . "\n";
        exit;

    }
    echo $result . PHP_EOL;
}

}

?>

经营工人
PHP job_entry.PHP workeradmin
正在等待工作…
运行客户端
PHP job_entry.PHP管理员arg1
这给我错误

PHP Error[2]: GearmanClient::dobackground(): send_packet(GEARMAN_Could_NOT_CONNECT) Failed to send server-options packet -> libgearman/connection.cc:430

解决方法:

你可以试试这个吗

 $gmworker->addServer('127.0.0.1','4730');

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐