アダプタ
Zend_Queueは、
インターフェースZend_Queue_Adapter_AdapterInterfaceを実装する
すべての待ち行列をサポートします。
以下のメッセージ待ち行列サービスがサポートされます:
ApacheMQ.
Zend_Dbを経たデータベースによる待ち行列
Memcacheによる
MemcacheQ待ち行列
内部配列。ユニットテストに役立ちます。
限定事項
メッセージ・トランザクション処理は、サポートされません。
固有のアダプタ - 設定の構成
デフォルトの設定が示される場合は、パラメータは任意です。
デフォルトの設定が指定されない場合は、パラメータが必要です。
ApacheMQ - Zend_Queue_Adapter_Apachemq
ここでリストされたオプションは、既知の必須条件です。
すべてのメッセージ発信サーバが、
ユーザー名またはパスワードを必要とするというわけではありません。
$options['name'] = '/temp/queue1';
これは、使い始めたい待ち行列の名前です。(必須)
$options['driverOptions']['host'] = 'host.domain.tld';
$options['driverOptions']['host'] = '127.0.0.1';
ホストをIPアドレスまたはホスト名にセットするかもしれません。
ホストのデフォルトの設定は '127.0.0.1' です。
$options['driverOptions']['port'] = 61613;
ポートのデフォルトの設定は 61613 です。
$options['driverOptions']['username'] = 'username';
一部のメッセージ発信サーバのために選択できます。
メッセージ発信サーバのためのマニュアルを読んでください。
$options['driverOptions']['password'] = 'password';
一部のメッセージ発信サーバのために選択できます。
メッセージ発信サーバのためのマニュアルを読んでください。
$options['driverOptions']['timeout_sec'] = 2;
$options['driverOptions']['timeout_usec'] = 0;
これは、Zend_Queue_Adapter_Activemqがメッセージを返さない前に
ソケットで読み取り活動を待つ時間です。
Db - Zend_Queue_Adapter_Db
ドライバオプションは、多少の必須のオプションのためにチェックされます。
(例えばtype、host、username、
passwordとdbname)
$options['driverOptions']でパラメータとして、
Zend_DB::factory()のために付加パラメータに沿って渡すかもしれません。
ここでは一覧に示されていませんが、
渡すことができる付加的なオプションはportでしょう。
array(
'host' => 'db1.domain.tld',
'username' => 'my_username',
'password' => 'my_password',
'dbname' => 'messaging',
'type' => 'pdo_mysql',
'port' => 3306, // optional parameter.
),
'options' => array(
// 更新のためにZend_Db_Selectを使います。
// 全てのデータベースがこのフィーチャをサポートできるわけではありません。
Zend_Db_Select::FOR_UPDATE => true
)
);
// データベース待ち行列を作成
$queue = Zend_Queue::factory('Db', $options);
]]>
$options['name'] = 'queue1';
これは、使い始めたい待ち行列の名前です。(必須)
$options['driverOptions']['type'] = 'Pdo';
typeは、
Zend_Db::factory()を
使ってもらいたいアダプタです。
これは、Zend_Db::factory()
クラス・メソッド呼び出しの最初のパラメータです。
$options['driverOptions']['host'] = 'host.domain.tld';
$options['driverOptions']['host'] = '127.0.0.1';
ホストをIPアドレスまたはホスト名にセットするかもしれません。
ホストのデフォルトの設定は '127.0.0.1' です。
$options['driverOptions']['username'] = 'username';
$options['driverOptions']['password'] = 'password';
$options['driverOptions']['dbname'] = 'dbname';
必須のテーブルを作成したデータベース名。
下記の注意部分を見てください。
MemcacheQ - Zend_Queue_Adapter_Memcacheq
$options['name'] = 'queue1';
これは、使い始めたい待ち行列の名前です。(必須)
$options['driverOptions']['host'] = 'host.domain.tld';
$options['driverOptions']['host'] = '127.0.0.1;'
ホストをIPアドレスまたはホスト名にセットするかもしれません。
ホストのデフォルトの設定は '127.0.0.1' です。
$options['driverOptions']['port'] = 22201;
ポートのデフォルトの設定は 22201 です。
配列 - Zend_Queue_Adapter_Array
$options['name'] = 'queue1';
これは、使い始めたい待ち行列の名前です。(必須)
アダプタ固有の注意
下記のアダプタには注意があります:
ActiveMQ
Zend_Queue_Adapter_ActiveMQのための可視性期間は利用できません。
ApacheのActiveMQが複数のサブスクリプションをサポートするのに対して、
Zend_Queueはそうしません。
それぞれのサブスクリプションのために
新しいZend_Queueオブジェクトを作成しなければなりません。
ActiveMQの待ち行列または項目の名前は下記のうちの一つで始めなくてはいけません:
/queue/
/topic/
/temp-queue/
/temp-topic/
例えば: /queue/testing
下記の関数はサポートされません:
create() - 待ち行列の作成。
この関数を呼ぶと例外を発生します。
delete() - 待ち行列の削除。
この関数を呼ぶと例外を発生します。
getQueues() - 待ち行列の一覧。
この関数を呼ぶと例外を発生します。
Zend_Db
データベースCREATE TABLE ( ... ) SQL
文がZend/Queue/Adapter/Db/queue.sqlにあります。
MemcacheQ
Memcacheはhttp://www.danga.com/memcached/
からダウンロードできます。
MemcacheQはhttp://memcachedb.org/memcacheq/
からダウンロードできます。
deleteMessage() -
メッセージは、待ち行列から受信と同時に削除されます。
この関数を呼んでも効果がありません。
この関数を呼ぶとエラーを発生します。
count()またはcount($adapter)
- MemcacheQは、待ち行列で件数を数えるためのメソッドをサポートしません。
この関数を呼ぶとエラーを発生します。
配列 (内部)
配列待ち行列はローカルメモリ上のPHP array()です。
Zend_Queue_Adapter_Arrayはユニットテスト用に適しています。