new takyam();

Qiitaぽい話はQiitaに書いていくことにする気がする http://qiita.com/takyam

FuelPHPでGearmanを使う

FuelPHPからGearmanを使うライブラリを書きました。

fuel-gearman
https://bitbucket.org/takyam/fuel-gearman

Gearmanクライアント用のクラスと、OilコマンドのタスクであるところのGearmanワーカー用のクラスの2つから構成されています。

クライアント側はPECL/Gearman extensionのラッパーのようなもので、
ワーカー側は、Oilコマンドを叩いてるだけのとてもシンプルなものになっています。

今のところlocalhostのデフォポートのGearmanを参照にいくことしかできなかったり、
Oilコマンド以外に対応していないからBackground以外の処理ができなかったりと、 とりあえず動くことを確認したよレベルではあります。

全体で100行もないレベルなので、
動作その他はソース読んでもらえれば大した事してないのはわかるかと思います。

そもそもGearmanをはじめJobQueue/MessageQueueを利用した事がなく、
当初はResqueを使おうと思っていましたが、FuelPHPとの親和性が高いライブラリもなく、 冗長構成等を考えるに不安があったので、JobQueueとしてイロイロ揃ってる、 GearmanかRabbitMQを使おうかなと思っていました。

GearmanとRabbitMQのどっちが良いのか調べたのですが、
イマイチメリデメはっきりしなかったので、
とりあえずPECLのライブラリがあるGearmanを使ってみる事にしました。

このへんが要件かなぁと考えていましたので、このライブラリで最後のFuelPHPのつなぎ込みがいける事を確認でき、とりあえず安心しています。

ただ実際の案件にツッコめるほどのクオリティではないので、引き続き開発していきたいと思います。

何かご質問などありましたら、Bitbucketかこちらにコメントください。