| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <!-- EN-Revision: 24249 -->
- <sect1 id="zend.queue.framework">
- <title>フレームワーク</title>
- <para>
- <classname>Zend_Queue</classname>は、
- 待ち行列サービスの詳細を隠す代理です。
- 待ち行列サービスは、<classname>Zend_Queue_Adapter_<service></classname>によって表現されます。
- たとえば、<classname>Zend_Queue_Adapter_Db</classname>は、
- メッセージを格納・読み出しするためにデータベーステーブルを使う待ち行列です。
- </para>
- <para>
- 下記は、待ち行列システムのためにデータベーステーブルを利用する例です:
- </para>
- <programlisting language="php"><![CDATA[
- $options = array(
- 'name' => 'queue1',
- 'driverOptions' => array(
- 'host' => '127.0.0.1',
- 'port' => '3306',
- 'username' => 'queue',
- 'password' => 'queue',
- 'dbname' => 'queue',
- 'type' => 'pdo_mysql'
- )
- );
- // データベース待ち行列を作成します。
- // Zend_Queue はクラス名として Zend_Queue_Adapter_ の後に 'Db' を付加します。
- $queue = new Zend_Queue('Db', $options);
- ]]></programlisting>
- <para>
- <classname>Zend_Queue</classname>コンストラクタは<classname>Zend_Queue_Adapter_Db</classname>を作成して、
- 構成設定値でアダプタを初期化します。
- </para>
- <para>
- 各々のアダプタに認められた構成設定値は、
- <link linkend="zend.queue.adapters">アダプタの注意</link>で示されます
- </para>
- <para>
- <classname>Zend_Queue</classname>は
- クラス<classname>Zend_Queue_Message_Iterator</classname>を用いてメッセージを返します。
- そして、それは<acronym>SPL</acronym> <classname>Iterator</classname>及び<classname>Countable</classname>の実装です。
- <classname>Zend_Queue_Message_Iterator</classname>は、
- <classname>Zend_Queue_Message</classname>オブジェクトの配列を含みます。
- </para>
- <programlisting language="php"><![CDATA[
- $messages = $queue->receive(5);
- foreach ($messages as $i => $message) {
- echo "$i) Message => ", $message->body, "\n";
- }
- ]]></programlisting>
- <para>
- 投げられるどんな例外も、クラス<classname>Zend_Queue_Exception</classname>です。
- </para>
- <sect2 id="zend.queue.framework.basics">
- <title>導入</title>
- <para>
- <classname>Zend_Queue</classname>は、
- アダプタを表現する代理クラスです。
- </para>
- <para>
- <methodname>send()</methodname>や
- <methodname>count($queue)</methodname>、そして
- <methodname>receive()</methodname>メソッドは、
- 待ち行列と相互に作用するために、それぞれのアダプタによって使用されます。
- </para>
- <para>
- <methodname>createQueue()</methodname>及び
- <methodname>deleteQueue()</methodname>メソッドは待ち行列を管理するために使われます。
- </para>
- </sect2>
- <sect2 id="zend.queue.framework.support">
- <title>アダプタの間の互換性</title>
- <para>
- <classname>Zend_Queue</classname>によってサポートされる待ち行列サービスは、
- 同じ関数をサポートするとは限りません。
- 例えば、<classname>Zend_Queue_Adapter_Array</classname>及び
- <classname>Zend_Queue_Adapter_Db</classname>は全ての関数をサポートしますが、
- 一方、<classname>Zend_Queue_Adapter_Activemq</classname>は
- 待ち行列の一覧や削除、そしてメッセージのカウントをサポートしません。
- </para>
- <para>
- <methodname>Zend_Queue::isSupported()</methodname>または
- <methodname>Zend_Queue::getCapabilities()</methodname>を使って
- どんな関数がサポートされるか判定できます。
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis><methodname>createQueue()</methodname></emphasis> - 待ち行列を作成
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><methodname>deleteQueue()</methodname></emphasis> - 待ち行列を削除
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><methodname>send()</methodname></emphasis> - メッセージを送信
- </para>
- <para>
- <methodname>send()</methodname>はアダプタ全てで利用可能なわけではありません;
- <classname>Zend_Queue_Adapter_Null</classname>は<methodname>send()</methodname>をサポートしません。
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><methodname>receive()</methodname></emphasis> - メッセージを受信
- </para>
- <para>
- <methodname>receive()</methodname>はアダプタ全てで利用可能なわけではありません;
- <classname>Zend_Queue_Adapter_Null</classname>は<methodname>receive()</methodname>をサポートしません。
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><methodname>deleteMessage()</methodname></emphasis> - メッセージを削除
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><methodname>count()</methodname></emphasis> - 待ち行列内のメッセージ数をカウント
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><methodname>isExists()</methodname></emphasis> - 待ち行列が存在するかチェック
- </para>
- </listitem>
- </itemizedlist>
- <para>
- <methodname>receive()</methodname>メソッドは、
- 待ち行列と相互に作用するために、それぞれのアダプタによって使用されます。
- </para>
- <para>
- <methodname>createQueue()</methodname>及び
- <methodname>deleteQueue()</methodname>メソッドは待ち行列を管理するために使われます。
- </para>
- </sect2>
- </sect1>
|