| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.queue.framework">
- <title>Framework</title>
- <para>
- <classname>Zend_Queue</classname> ist ein Proxy der die Details des Queue Services
- versteckt. Die Queue Services werden durch
- <classname>Zend_Queue_Adapter_<service></classname> repräsentiert. Zum Beispiel ist
- <classname>Zend_Queue_Adapter_Db</classname> eine Queue die Datenbanktabellen verwendet
- um Nachrichten zu speichern und zu empfangen.
- </para>
- <para>
- Anbei ist ein Beispiel für die Verwendung von Datenbanktabellen für ein Queueing System:
- </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'
- )
- );
- // Erstellt eine Datenbank Queue.
- // Zend_Queue fügt vorne Zend_Queue_Adapter_ an 'Db' für den Klassennamen an.
- $queue = new Zend_Queue('Db', $options);
- ]]></programlisting>
- <para>
- Der Constructor von <classname>Zend_Queue</classname> erstellt eine
- <classname>Zend_Queue_Adapter_Db</classname> und initialisiert den Adapter mit den
- Konfigurationseinstellungen.
- </para>
- <para>
- Die akzeptierten Konfigurationseinstellungen für jeden Adapter sind in den
- <link linkend="zend.queue.adapters">Adapter Notizen</link> beschrieben.
- </para>
- <para>
- <classname>Zend_Queue</classname> gibt Nachrichten zurück indem es die
- <classname>Zend_Queue_Message_Iterator</classname> Klasse verwendet, welche eine
- Implementation vom <acronym>SPL</acronym> <classname>Iterator</classname> und von
- <classname>Countable</classname> ist.
- <classname>Zend_Queue_Message_Iterator</classname> enthält ein Array von
- <classname>Zend_Queue_Message</classname> Objekten.
- </para>
- <programlisting language="php"><![CDATA[
- $messages = $queue->receive(5);
- foreach ($messages as $i => $message) {
- echo "$i) Nachricht => ", $message->body, "\n";
- }
- ]]></programlisting>
- <para>
- Alle Exceptions die geworfen werden sind von der Klasse
- <classname>Zend_Queue_Exception</classname>.
- </para>
- <sect2 id="zend.queue.framework.basics">
- <title>Einführung</title>
- <para>
- <classname>Zend_Queue</classname> ist eine Proxy Klasse die einen Adapter
- repräsentiert.
- </para>
- <para>
- Die Methoden <methodname>send()</methodname>, <methodname>count($queue)</methodname>,
- und <methodname>receive()</methodname> werden von jedem Adapter verwendet um mit den
- Queues zu interagieren.
- </para>
- <para>
- Die Methoden <methodname>createQueue()</methodname>,
- <methodname>deleteQueue()</methodname> werden verwendet um Queues zu managen.
- </para>
- </sect2>
- <sect2 id="zend.queue.framework.support">
- <title>Gemeinsamkeiten für alle Adapter</title>
- <para>
- Die Queue Services die von <classname>Zend_Queue</classname> unterstützt werden
- unterstützen nicht alle die gleichen Funktionalitäten. Zum Beispiel unterstützen
- <classname>Zend_Queue_Adapter_Array</classname> und
- <classname>Zend_Queue_Adapter_Db</classname> alle Funktionen, während
- <classname>Zend_Queue_Adapter_Activemq</classname> das Auflisten und Löschen von Queues
- der das Zählen von Nachrichten nicht unterstützt.
- </para>
- <para>
- Man kann erkennen welche Funktionen unterstützt werden indem
- <methodname>Zend_Queue::isSupported()</methodname> oder
- <methodname>Zend_Queue::getCapabilities()</methodname> verwendet wird.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis><methodname>createQueue()</methodname></emphasis> - Erstellt eine
- Queue
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><methodname>deleteQueue()</methodname></emphasis> - Löscht eine Queue
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><methodname>send()</methodname></emphasis> - Sendet eine Nachricht
- </para>
- <para>
- <methodname>send()</methodname> ist nicht in allen Adaptern vorhanden;
- <classname>Zend_Queue_Adapter_Null</classname> unterstützt
- <methodname>send()</methodname> nicht.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><methodname>receive()</methodname></emphasis> - Empfängt eine
- Nachricht
- </para>
- <para>
- <methodname>receive()</methodname> ist nicht in allen Adaptern vorhanden;
- <classname>Zend_Queue_Adapter_Null</classname> unterstützt
- <methodname>receive()</methodname> nicht.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><methodname>deleteMessage()</methodname></emphasis> - Löscht eine
- Nachricht
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><methodname>count()</methodname></emphasis> - Zählt die Anzahl an
- Nachrichten in einer Queue
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><methodname>isExists()</methodname></emphasis> - Prüft auf die
- Existenz einer Queue
- </para>
- </listitem>
- </itemizedlist>
- <para>
- <methodname>receive()</methodname> Methoden werden von jedem Adapter zur Verfügung
- gestellt um mit Queues zu interagieren.
- </para>
- <para>
- Die Methoden <methodname>createQueue()</methodname> und
- <methodname>deleteQueue()</methodname> werden verwendet um Queues zu managen.
- </para>
- </sect2>
- </sect1>
|