読者です 読者をやめる 読者になる 読者になる

【CentOS】yum で Gearman + PHP をインストールする

ジョブサーバというものを知ったので、立ててみる。
色々種類があったけど、
Gearmanが一番簡単そうだったので、
Gearman + PHP を使ってみる。

OSは CentOS 6.4 です。
すでにPHPは使える状態だとする。

他のサイトではソースをmakeしてるみたいだけど、yum でいける。

【インストール】
//epel or remi を登録する必要があるかもしれない。
# yum -y install gearmand


//PHP拡張機能
# yum -y install libgearman-devel
# pecl install gearman

「extension = gearman.so」 を php.ini に追記する。

設定を反映させるためにApacheを再起動すること。


【Gearmanを起動】
# /etc/init.d/gearmand start


【動作確認】
--- worker.php ---

<?php
	$worker = new GearmanWorker();
	$worker->addServer();
	$worker->addFunction('test', 'my_test');
	while ($worker->work());

	function my_test($job) {
            print $job->workload()."\n";
	}


--- client.php ---

<?php
	$client = new GearmanClient();
	$client->addServer();
	$time = time();
	print $time."\n";
	$client->doBackground("test", $time);
	if ($client->returnCode() != GEARMAN_SUCCESS) {
    	    print "faild add job!\n";
	}

上記のソースは以下のサイトからコピペしています。
何か問題があれば削除するので連絡を下さい。
http://d.hatena.ne.jp/toshiyuki_saito/20110128


まずはclient.phpを実行してジョブを登録する。
# php client.php

すると、Unixタイムスタンプが表示されるはず。

次に worker.php を実行してジョブを処理させる。
# php worker.php

これで先ほどのUnixタイムスタンプが表示されるはず。
ジョブサーバのWorkerはwhileループで常時稼働しているので、
確認が終わったら強制終了するといい。