Zend_Queue-Framework.xml 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 24249 -->
  4. <sect1 id="zend.queue.framework">
  5. <title>フレームワーク</title>
  6. <para>
  7. <classname>Zend_Queue</classname>は、
  8. 待ち行列サービスの詳細を隠す代理です。
  9. 待ち行列サービスは、<classname>Zend_Queue_Adapter_&lt;service&gt;</classname>によって表現されます。
  10. たとえば、<classname>Zend_Queue_Adapter_Db</classname>は、
  11. メッセージを格納・読み出しするためにデータベーステーブルを使う待ち行列です。
  12. </para>
  13. <para>
  14. 下記は、待ち行列システムのためにデータベーステーブルを利用する例です:
  15. </para>
  16. <programlisting language="php"><![CDATA[
  17. $options = array(
  18. 'name' => 'queue1',
  19. 'driverOptions' => array(
  20. 'host' => '127.0.0.1',
  21. 'port' => '3306',
  22. 'username' => 'queue',
  23. 'password' => 'queue',
  24. 'dbname' => 'queue',
  25. 'type' => 'pdo_mysql'
  26. )
  27. );
  28. // データベース待ち行列を作成します。
  29. // Zend_Queue はクラス名として Zend_Queue_Adapter_ の後に 'Db' を付加します。
  30. $queue = new Zend_Queue('Db', $options);
  31. ]]></programlisting>
  32. <para>
  33. <classname>Zend_Queue</classname>コンストラクタは<classname>Zend_Queue_Adapter_Db</classname>を作成して、
  34. 構成設定値でアダプタを初期化します。
  35. </para>
  36. <para>
  37. 各々のアダプタに認められた構成設定値は、
  38. <link linkend="zend.queue.adapters">アダプタの注意</link>で示されます
  39. </para>
  40. <para>
  41. <classname>Zend_Queue</classname>は
  42. クラス<classname>Zend_Queue_Message_Iterator</classname>を用いてメッセージを返します。
  43. そして、それは<acronym>SPL</acronym> <classname>Iterator</classname>及び<classname>Countable</classname>の実装です。
  44. <classname>Zend_Queue_Message_Iterator</classname>は、
  45. <classname>Zend_Queue_Message</classname>オブジェクトの配列を含みます。
  46. </para>
  47. <programlisting language="php"><![CDATA[
  48. $messages = $queue->receive(5);
  49. foreach ($messages as $i => $message) {
  50. echo "$i) Message => ", $message->body, "\n";
  51. }
  52. ]]></programlisting>
  53. <para>
  54. 投げられるどんな例外も、クラス<classname>Zend_Queue_Exception</classname>です。
  55. </para>
  56. <sect2 id="zend.queue.framework.basics">
  57. <title>導入</title>
  58. <para>
  59. <classname>Zend_Queue</classname>は、
  60. アダプタを表現する代理クラスです。
  61. </para>
  62. <para>
  63. <methodname>send()</methodname>や
  64. <methodname>count($queue)</methodname>、そして
  65. <methodname>receive()</methodname>メソッドは、
  66. 待ち行列と相互に作用するために、それぞれのアダプタによって使用されます。
  67. </para>
  68. <para>
  69. <methodname>createQueue()</methodname>及び
  70. <methodname>deleteQueue()</methodname>メソッドは待ち行列を管理するために使われます。
  71. </para>
  72. </sect2>
  73. <sect2 id="zend.queue.framework.support">
  74. <title>アダプタの間の互換性</title>
  75. <para>
  76. <classname>Zend_Queue</classname>によってサポートされる待ち行列サービスは、
  77. 同じ関数をサポートするとは限りません。
  78. 例えば、<classname>Zend_Queue_Adapter_Array</classname>及び
  79. <classname>Zend_Queue_Adapter_Db</classname>は全ての関数をサポートしますが、
  80. 一方、<classname>Zend_Queue_Adapter_Activemq</classname>は
  81. 待ち行列の一覧や削除、そしてメッセージのカウントをサポートしません。
  82. </para>
  83. <para>
  84. <methodname>Zend_Queue::isSupported()</methodname>または
  85. <methodname>Zend_Queue::getCapabilities()</methodname>を使って
  86. どんな関数がサポートされるか判定できます。
  87. </para>
  88. <itemizedlist>
  89. <listitem>
  90. <para>
  91. <emphasis><methodname>createQueue()</methodname></emphasis> - 待ち行列を作成
  92. </para>
  93. </listitem>
  94. <listitem>
  95. <para>
  96. <emphasis><methodname>deleteQueue()</methodname></emphasis> - 待ち行列を削除
  97. </para>
  98. </listitem>
  99. <listitem>
  100. <para>
  101. <emphasis><methodname>send()</methodname></emphasis> - メッセージを送信
  102. </para>
  103. <para>
  104. <methodname>send()</methodname>はアダプタ全てで利用可能なわけではありません;
  105. <classname>Zend_Queue_Adapter_Null</classname>は<methodname>send()</methodname>をサポートしません。
  106. </para>
  107. </listitem>
  108. <listitem>
  109. <para>
  110. <emphasis><methodname>receive()</methodname></emphasis> - メッセージを受信
  111. </para>
  112. <para>
  113. <methodname>receive()</methodname>はアダプタ全てで利用可能なわけではありません;
  114. <classname>Zend_Queue_Adapter_Null</classname>は<methodname>receive()</methodname>をサポートしません。
  115. </para>
  116. </listitem>
  117. <listitem>
  118. <para>
  119. <emphasis><methodname>deleteMessage()</methodname></emphasis> - メッセージを削除
  120. </para>
  121. </listitem>
  122. <listitem>
  123. <para>
  124. <emphasis><methodname>count()</methodname></emphasis> - 待ち行列内のメッセージ数をカウント
  125. </para>
  126. </listitem>
  127. <listitem>
  128. <para>
  129. <emphasis><methodname>isExists()</methodname></emphasis> - 待ち行列が存在するかチェック
  130. </para>
  131. </listitem>
  132. </itemizedlist>
  133. <para>
  134. <methodname>receive()</methodname>メソッドは、
  135. 待ち行列と相互に作用するために、それぞれのアダプタによって使用されます。
  136. </para>
  137. <para>
  138. <methodname>createQueue()</methodname>及び
  139. <methodname>deleteQueue()</methodname>メソッドは待ち行列を管理するために使われます。
  140. </para>
  141. </sect2>
  142. </sect1>