Gearman 的安裝和使用

一、安裝 Gearmanphp

首先,下載 Gearman 守護程序 gearmand 的最新源代碼(地址),解壓縮這個 tarball,並安裝(安裝須要 root 權限)。c++

$ wget https://launchpad.net/gearmand/1.2/1.1.12/+download/gearmand-1.1.12.tar.gz
$ tar xvzf gearmand-1.1.12.tar.gz
$ cd gearmand-1.1.12
$ ./configure
$ make
$ sudo make install

若是 configure 時,提示 configure: error: could not find boost,則須要先安裝 boost library:.net

$ yum install boost-devel

安裝 gearmand 後,構建 PHP 擴展。您能夠從 PECL 獲取這個 tarball(地址)。命令行

$ wget http://pecl.php.net/get/gearman-1.1.2.tgz
$ tar xvzf gearman-1.1.2.tgz
$ cd gearman-1.1.2

有了這些代碼後,就能夠開始構建擴展了:code

$ phpize
$ ./configure
$ make
$ make install

若是 configure 時提示錯誤:configure: error: C preprocessor "/lib/cpp" fails sanity check,則須要安裝 c++ 編譯器相關 package:get

yum install glibc-headers
yum install gcc-c++ 
yum install kernel-headers

這個 Gearman 守護程序一般被安裝在 /usr/sbin。能夠從命令行直接啓動此守護程序,也能夠將這個守護程序添加到啓動配置中,以便在機器每次重啓時就能夠啓動這個守護程序。
接下來,須要安裝 Gearman 擴展。打開 php.ini 文件(能夠經過 php --ini 命令快速找到這個文件),而後添加代碼行 extension = gearman.so:編譯器

$ php --ini    //Loaded Configuration File: /etc/php/php.ini
$ vi /etc/php/php.ini 
...
extension = gearman.so

保存此文件。要想驗證擴展是否啓用,請運行 php --info,而後查找 Gearman:it

$ php --info | grep gearman

此外,還能夠用一個 PHP 代碼片斷來驗證構建和安裝是否得當。將這個小應用程序保存到 verify_gearman.php:io

<?php
  print gearman_version() . "\n";
?>

接下來,從命令行運行此程序:編譯

$ php verify_gearman.php    //0.10

若是這個版本號與以前構建和安裝的 Gearman 庫的版本號相匹配,那麼系統就已準備好了。

而後啓動這個 agent,即 Gearman 守護程序:

$ gearmand -d

二、從 PHP 使用 Gearman

用 PHP 編寫的一個 Gearman worker。將這些代碼保存在一個名爲 worker.php 的文件中。

<?php
    $worker= new GearmanWorker();
    $worker->addServer();
    $worker->addFunction("title", "title_function");
    while ($worker->work());

    function title_function($job){
        return ucwords(strtolower($job->workload()));
    }
?>

用 PHP 編寫的一個 producer,或 client。將此代碼保存在一個名爲 client.php 的文件內。

<?php
    $client= new GearmanClient();
    $client->addServer();
    print $client->do("title", "AlL THE World's a sTagE");
    print "\n";
?>

如今,能夠用以下的命令行鏈接客戶機與 worker 了:

$ php worker.php &
$ php client.php
All The World's A Stage
$ jobs
[3]+  Running                 php worker.php &

來源於:用 Gearman 分發 PHP 應用程序的工做負載

相關文章
相關標籤/搜索