|
|
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 = 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ärend
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.
create() - Erstellt eine Queue
delete() - Löscht eine Queue
send() - Sendet eine Nachricht
send() ist nicht in allen Adaptern vorhanden;
Zend_Queue_Adapter_Null unterstützt
send() nicht.
receive() - Empfängt eine Nachricht
receive() ist nicht in allen Adaptern vorhanden;
Zend_Queue_Adapter_Null unterstützt
receive() 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.
|
|
Copyright © 2005-2011 Zend Technologies Inc (compiled by mikaelkael with ZFDocumentor - SVN 18616).

