前に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'; } } ?>
これで使いやすくなった。