【CentOS】Gearmanでクラスを使う

前にGearmanを使ってみたけど、
Workerの処理はファイル内に function で定義したものだった。
実際に使う時はクラス化したものを使いたいので、調べてみた。

意外と簡単。

Workerは以下。

<?php
    require_once('./message.php');
    $message = new Message();
    $worker = new GearmanWorker();
    $worker->addServer();
    $worker->addFunction('message', array($message, 'show'));
    while ($worker->work());

message.php がクラスで、
addFunction() の第2引数を array(クラスのインスタンス, メソッド名) にすれば使える。

これだけ。

messageクラスは以下になる。
特に何もなく・・・普通・・・。

<?php
class Message {
    public function show($_message_json){
        echo 'accept message';
    }
}
?>

これで使いやすくなった。