zoukankan      html  css  js  c++  java
  • gearman学习笔记2

    由于只在ubuntu下进行练习,centerOS的具体怎么实施后面再来测试

    1.第一步:安装gearman

    首先运行sudo apt-get install php5-dev  才能安装php的gearman扩展,第二部运行sudo apt-get install gearman ,这一步会把gearman扩展 gearmand任务分发器   gearman-job-server工作服务器一起安装,所以比起刚开始用的编译安装,实在是太方便了。

    2.启动任务分发器

    sudo gearmand -d -L 127.0.0.1 -p 5555     -d 是以守护进程启动  -L是工作服务器的ip  -p是端口

    3.启动gearman-job-server 工作服务器

    sudo service gearman-job-server status  查看服务器运行状态,如果没有运行,则把status改为start启动。

    做个小测试:

    worker.php

    <?php
      $worker= new GearmanWorker();
      $worker->addServer('127.0.0.1','5566');
       // $worker->addServer('127.0.0.1','5555');
      $worker->addFunction("title", "title_function");
      while ($worker->work());
       
      function title_function($job)
      {
        return 'worker return';
      }
    ?>

    worker1.php

    <?php
      $worker= new GearmanWorker();
      $worker->addServer('127.0.0.1','5555');
       // $worker->addServer('127.0.0.1','5555');
      $worker->addFunction("title", "title_function");
      while ($worker->work());
       
      function title_function($job)
      {
        return 'worker1 return';
      }
    ?>

    worker2.php

    <?php
      $worker= new GearmanWorker();
      $worker->addServer('127.0.0.1','5577');
      $worker->addFunction("title", "title_function");
      while ($worker->work());
       
      function title_function($job)
      {
        return 'worker2 return';
      }
    ?>

    client.php

    <?php
      $client= new GearmanClient();
      $client->addServer('127.0.0.1','5566');
       $client->addServer('127.0.0.1','5555');
       $client->addServer('127.0.0.1','5577');
      print $client->do("title", "test");
      print "
    ";
    ?>

    运行命令:php worker.php & php worker1.php & php worker2.php &php client.php

    如果我没有启动gearmand 则没有接受到任务,更不要谈分发任务了,如果我启动gearmand -d -L 127.0.0.1 -p 5566,则会打印出work return,证明第一个工作服务器接受到任务并运行了,如果我把5566端口的gearmand进程杀掉,运行5555端口的进程则会打印出worker1 return,并不会因为5566服务器停掉就无法处理,如果同时开启5566,5555,5577端口的服务器,则会运行5577服务器,打印出work2 return,(同时开启的时候应该是默认执行client.php里addServer的最后一个配置的服务器)。

  • 相关阅读:
    PHP语言结构
    时钟拖放
    CSS定位
    vi命令(转)
    数值转化Excel列字母的函数
    SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY的比较
    数字转化罗马数字的函数
    在VB中如何打开“文件夹选项”对话框?
    纯VB代码取得硬盘的物理序列号 (转)
    项目经理应该做什么
  • 原文地址:https://www.cnblogs.com/tudou1223/p/4536277.html
Copyright © 2011-2022 走看看