■
openpear/Net_Q4M
Q4MのPHPインターフェースラッパを書いたのでopenpear.orgで公開してみました。
基本的な使い方はこんな感じで。
$queue = new Net_Q4M();
$queue->connect('mysql://user:pass@localhost:3306/database');
$row = $queue->dequeue('my_queue');
if (process_row($row)) {
$queue->end();
} else {
$queue->abort();
}
$queue->disconnect();
キューの値は配列で返るので適当に処理します(上のサンプルだとprocess_row()のところ)。 処理に成功した場合はend()を呼ぶことでキューから値を削除します。 逆に失敗した場合はabort()を呼ぶと値はキューに戻され、他の接続からも参照可能になります。
取得したキューの値はend()が呼ばれるか次のdequeue()が呼ばれた時点で削除されます。 また、end()もabort()も呼ばれないまま切断された場合は、取得した値はキューに戻ります。
// キューへの接続
$queue->connect('mysql://user:pass@localhost:3306/database');
$queue->connect('mysqli://user:pass@localhost:3306/database');
$queue->connect('pdo_mysql://user:pass@localhost:3306/database');
phptypeにはmysql/mysqli/PDO(mysql)の3種類が指定可能です。
// キューから値を取得
$queue->dequeue('my_queue', 5);
$queue->dequeue('my_queue', 'my_queue2', 'my_queue3', 10);
また、Q4Mでは取得先のキューを優先度順に複数指定する事が可能です。 この場合はdequeue()の引数に取得先のキュー(テーブル名)を優先度の高い順に指定します。 キューを複数指定する場合、タイムアウト時間を省略することはできません。
// キューに取得条件を指定
$queue->dequeue('my_queue:id=1000');
$queue->dequeue('my_queue:score<30');
// キューに値を追加
$data = array(
'user_id' => 1000,
'message' => 'Hello!'
);
$queue->enqueue('my_queue', $data);
テーブルのカラムに対応したキーと値を保持する連想配列を引数に渡して実行します。
// キューの状態を取得する
$result = $queue->status();
var_dump($result);
ということで、リポジトリは誰でも編集可能なはずなので適当に弄ってあげてください。
posted at 06:24 [ /tech ]
こんなの。
ついでにイー・モバイル。
MacBook買ってきました。





