Zend_Queue
ist ein Proxy der die Details des Queue Services
versteckt. Die Queue Services werden durch
Zend_Queue_Adapter_<service>
repräsentiert. Zum Beispiel ist
Zend_Queue_Adapter_Db
eine Queue die Datenbanktabellen verwendet
um Nachrichten zu speichern und zu empfangen.
Anbei ist ein Beispiel für die Verwendung von Datenbanktabellen für ein Queueing System:
$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);
Der Constructor von Zend_Queue
erstellt eine
Zend_Queue_Adapter_Db
und initialisiert den Adapter mit den
Konfigurationseinstellungen.
Die akzeptierten Konfigurationseinstellungen für jeden Adapter sind in den Adapter Notizen beschrieben.
Zend_Queue
gibt Nachrichten zurück indem es die
Zend_Queue_Message_Iterator
Klasse verwendet, welche eine
Implementation vom SPL Iterator
und von
Countable
ist.
Zend_Queue_Message_Iterator
enthält ein Array von
Zend_Queue_Message
Objekten.
$messages = $queue->receive(5); foreach ($messages as $i => $message) { echo "$i) Nachricht => ", $message->body, "\n"; }
Alle Exceptions die geworfen werden sind von der Klasse
Zend_Queue_Exception
.
Zend_Queue
ist eine Proxy Klasse die einen Adapter
repräsentiert.
Die Methoden send()
, count($queue)
,
und receive()
werden von jedem Adapter verwendet um mit den
Queues zu interagieren.
Die Methoden createQueue()
,
deleteQueue()
werden verwendet um Queues zu managen.
Die Queue Services die von Zend_Queue
unterstützt werden
unterstützen nicht alle die gleichen Funktionalitäten. Zum Beispiel unterstützen
Zend_Queue_Adapter_Array
und
Zend_Queue_Adapter_Db
alle Funktionen, während
Zend_Queue_Adapter_Activemq
das Auflisten und Löschen von Queues
der das Zählen von Nachrichten nicht unterstützt.
Man kann erkennen welche Funktionen unterstützt werden indem
Zend_Queue::isSupported()
oder
Zend_Queue::getCapabilities()
verwendet wird.
-
createQueue()
- Erstellt eine Queue -
deleteQueue()
- Löscht eine Queue -
send()
- Sendet eine Nachrichtsend()
ist nicht in allen Adaptern vorhanden;Zend_Queue_Adapter_Null
unterstütztsend()
nicht. -
receive()
- Empfängt eine Nachrichtreceive()
ist nicht in allen Adaptern vorhanden;Zend_Queue_Adapter_Null
unterstütztreceive()
nicht. -
deleteMessage()
- Löscht eine Nachricht -
count()
- Zählt die Anzahl an Nachrichten in einer Queue -
isExists()
- Prüft auf die Existenz einer Queue
receive()
Methoden werden von jedem Adapter zur Verfügung
gestellt um mit Queues zu interagieren.
Die Methoden createQueue()
und
deleteQueue()
werden verwendet um Queues zu managen.