More Related Content Similar to PHP & Queue (20) PHP & Queue1. PHP & Queue
PHP Study Meeting in Kanto, Japan #47
させざき
2009.11.7
github.com/sasezaki
Photo by skoop / http://www.flickr.com/photos/skoop/2547899690/
21. Zend_Queue
・ZF1.9にて追加されたコンポーネント、
クライアント・ラッパー的なクラス
(これ自体にジョブキューシステムが share/php/Zend/Queue
|-- Adapter
備わってる訳ではない) | |-- Abstract.php
| |-- Activemq.php
・ZFらしく各種アダプターが用意されている AdapterAbstract.php
| |--
| |-- AdapterInterface.php
・Array(主にデバッグ用) | |-- Apachemq.php
・Zend_Db | |-- Array.php
・Memcacheq | |-- Db
| | |-- Message.php
・Apache ActiveMQ | | |-- Queue.php
- Zend_Queue_Stompを使用 | | |-- mysql.sql
(ActiveMQについては第28回PHP勉強会 | | |-- postgresql.sql
| | `-- queue_sqlite.php
でのakkyさんの発表あり) | |-- Db.php
・Zend Platform JobQueue | |-- Memcacheq.php
| |-- Null.php
| `-- PlatformJobQueue.php
※ Amazon SQS用のアダプタも作られていましたが、 Exception.php
|--
Zend_Service_Amazon_Sqsに移動されました。 |-- Message
| |-- Iterator.php
| `-- PlatformJob.php
|-- Message.php
`-- Stomp
22. Zend_Queueの例
require_once 'Zend/Queue.php';
// アダプタ用のオプション設定
$options = array('name' => 'queue1');
// 配列待ち行列の作成
$queue = new Zend_Queue('Array', $options);
// 待ち行列にメッセージを送信
$queue->send('Hello 1');
$queue->send('Hello 2');
$queue->send('Hello 3');
// 待ち行列からメッセージを2件取り出す
$messages = $queue->receive(2);
// メッセージ群はIteratorに格納されている。
foreach ($messages as $message) {
echo $message->body, ",";
} // Hello 1, Hello2, と表示される。
詳しい使い方はテストコードを参照
23. Zend_Queueを使ってみる
デモ概要
・Queueと言えばクローラですが(?)
http://labs.cybozu.co.jp/blog/kazuho/archives/2008/04/q4m_crawler.php
http://coderepos.org/share/browser/docs/mala/20081127-shibuyapm10-lt/main.txt
・Zendの人が作ったSpiderライブラリを改造
(Httpリクエストのキューを扱う)
・perlのWeb::Collectorっぽいものを作る。
http://en.yummy.stripper.jp/?eid=976179
・今回は架空の画像掲示板からのぶっっこ抜き例