ホームページ  >  記事  >  バックエンド開発  >  Gearman 入門ノート

Gearman 入門ノート

WBOY
WBOYオリジナル
2016-08-08 09:23:251182ブラウズ

1. はじめに

Gearman は、他のマシンまたはプロセスに作業を委任できるツールです。
公式ウェブサイトのアドレス: http://gearman.org/

Gearman は通常、クライアント + ワーカー + タスク サーバーの 3 つの部分で構成され、ワー​​カーはクライアントから送信されたジョブを実行し、ジョブ サーバーを介してクライアントに返します。 Gearman はクライアント API とワーカー API を提供し、これらの API を使用してジョブ サーバーと通信します。
これは動作原理図です:

2. インストール

公式インストール ガイドは次の場所にあります: http://gearman.org/getting-started/
以下は、ubuntu での具体的なインストール プロセスを紹介します:

1. ubuntu14.04 では、Python-Software-Properties は Software-Properties-Common に置き換えられます。

<code>sudo apt-get install software-properties-common
sudo add-apt-repository ppa:gearman-developers/ppa
sudo apt-get update
</code>

2. GearmanJobServer、Dev Tools をインストールし、アップグレードを実行します

<code>sudo apt-get install gearman-job-server libgearman-dev
sudo apt-get install gearman-tools
sudo apt-get upgrade
</code>

3 PECL がない場合は、PECL をインストールし、PECL を使用して Gearman (CLI、クライアント、ワーカー) をインストールします

<code>sudo apt-get install php-pear
sudo apt-get install php5-dev
sudo pecl install gearman
</code>

4. Gearman を使用するように php.ini (CLI およびサーバー) を変更します

<code>sudo vi /etc/php5/cli/php.ini
</code>

動的拡張機能を追加します:
extension=gearman.so

3. phpでgearmanを使用する

1. phpでgearmanを呼び出す方法

phpビューバージョン

<code><?php print gearman_version() . "\n"; ?>
运行方式:php test.php
</code>

これを実行した後、ctrl+cが必要ですプログラムを終了します。このコードは、ワーカー オブジェクトを作成し、デフォルト サーバーを追加し、リバース コールバック関数を登録します。プログラムは、ジョブが入るたびに無限ループに入ります。ここでは、文字列が単純に反転されて返されます。

クライアントを構築する

クライアントはワーカーに似ており、次のserver.phpを作成します

<code><?php
    $worker= new GearmanWorker();
    $worker->addServer();
    $worker->addFunction("reverse", "my_reverse_function");
    while ($worker->work());

    function my_reverse_function($job){
      return strrev($job->workload());
    }
?>
</code>
実行結果を見てください:


画像サイズ変更ワーカーを構築します

<code><?php
$client=new GearmanClient();
$client->addServer();
print $client->do("reverse","Hello World!");
?>
</code>
phpにはImageMagickのサポートが必要です、インストール方法:

<code><?php
$worker= new GearmanWorker();
$worker->addServer();
$worker->addFunction("resize", "my_resize_function");
while ($worker->work());

function my_resize_function($job)
{
  $thumb = new Imagick();
  $thumb->readImageBlob($job->workload());

  if ($thumb->getImageHeight() > 600)
    $thumb->scaleImage(0, 600);
  else if ($thumb->getImageWidth() > 800)
    $thumb->scaleImage(800, 0);

  return $thumb->getImageBlob();
}
?>
</code>
クライアントのサイズ変更

ここでは、クライアントを呼び出すコマンドを使用します

<code>sudo wget http://www.imagemagick.org/download/ImageMagick.tar.gz
tar -xzvf ImageMagick.tar.gz
cd ImageMagick
sudo ./configure -prefix=/usr/local/imagemagick -enable-lzw -with-modules && make && make install
</code>
2. phpを使用せず、コマンドラインを直接使用してgearmanを使用します。 例

ターミナルを起動してデーモンプロセスを実行します

<code>gearman -f resize < full.jpg > thumb.jpg
</code>
ワーカーを起動します, ここで ls コマンド

<code>sudo gearmand --daemon
</code>
を呼び出して起動します。クライアント

<code>gearman -w -f ls -- ls -lh
</code>
は出力結果を確認できます。


参考URL:http://gearman.org/getting-started/#client

以上、Gearman エントリーの使用上の注意事項を、関連する内容も含めて紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。