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的最后一个配置的服务器)。

  • 相关阅读:
    浅谈软件开发项目的质量控制
    分布式系统稳定性模式
    正确使用 Volatile 变量
    我和 OI 的一些故事
    NOIP2020 退役记
    博弈论基础入门
    [HAOI2008]硬币购物(容斥/背包DP)
    [CF] 1307F Cow and Vacation(思维/贪心)
    [noi.ac 模拟赛8] c(容斥/DP)
    [noi.ac 模拟赛9] A.出征准备(同余最短路)
  • 原文地址:https://www.cnblogs.com/tudou1223/p/4536277.html
Copyright © 2011-2022 走看看