Adapter Zend_Queue unterstützt alle Queue die das Interface Zend_Queue_Adapter_AdapterInterface implementieren. Die folgenden Nachrichten Queue Services werden unterstützt: ApacheMQ. Eine Datenbank verwendende Queue über Zend_Db. Eine MemcacheQ verwendende Queue über Memcache. Ein lokales Array. Nützlich für Unit Tests. Einschränkungen Das Transaction Handling für Nachrichten wird nicht unterstützt. Spezielle Adapter - Konfigurations Optionen Wenn eine Standardeinstellung angezeigt wird, dann ist der Parameter optional. Wenn keine Standardeinstellung spezifiziert ist dann wird der Parameter benötigt. ApacheMQ - Zend_Queue_Adapter_Apachemq Hier aufgeführte Optionen sind bekannte Notwendigkeiten. Nicht alle Nachrichten Server benötigen username oder password. $options['name'] = '/temp/queue1'; Das ist der Name der Queue die man anfangen will zu verwenden. (Benötigt) $options['driverOptions']['host'] = 'host.domain.tld'; $options['driverOptions']['host'] = '127.0.0.1'; Man kann host auf eine IP Adresse oder einen Hostnamen setzen. Der Standardwert für host ist '127.0.0.1'. $options['driverOptions']['port'] = 61613; Die Standardeinstellung für port ist 61613. $options['driverOptions']['username'] = 'username'; Optional für einige Nachrichten Server. Lesen Sie das Handbuch für Ihren Nachrichten Server. $options['driverOptions']['password'] = 'password'; Optional für einige Nachrichten Server. Lesen Sie das Handbuch für Ihren Nachrichten Server. $options['driverOptions']['timeout_sec'] = 2; $options['driverOptions']['timeout_usec'] = 0; Das ist die Menge an Zeit die Zend_Queue_Adapter_Activemq für einen Lesezugriff auf einem Socket wartet bevor keine Nachricht zurückgegeben wird. Db - Zend_Queue_Adapter_Db Optionen des Treibers werden für wenige benötigte Optionen geprüft so wie type, host, username, password und dbname. Man kann zusätzliche Parameter für Zend_DB::factory() als Paramerter in $options['driverOptions'] übergeben. Ein Beispiel für eine zusätzliche Option die hier nicht aufgeführt ist, aber übergeben werden könnte ist port. array( 'host' => 'db1.domain.tld', 'username' => 'my_username', 'password' => 'my_password', 'dbname' => 'messaging', 'type' => 'pdo_mysql', 'port' => 3306, // Optionaler Parameter ), 'options' => array( // Verwenden von Zend_Db_Select für das Update, nicht alle Datenbanken // unterstützen dieses Feature. Zend_Db_Select::FOR_UPDATE => true ) ); // Eine Datenbank Queue erstellen. $queue = Zend_Queue::factory('Db', $options); ]]> $options['name'] = 'queue1'; Das ist der Name der Queue die man anfangen will zu verwenden. (Benötigt) $options['driverOptions']['type'] = 'Pdo'; type ist der Adapter von dem man will das Ihn Zend_Db::factory() verwendet. Das ist der erste Parameter für den Aufruf der Klassenmethode Zend_Db::factory() $options['driverOptions']['host'] = 'host.domain.tld'; $options['driverOptions']['host'] = '127.0.0.1'; Man kann host auf eine IP Adresse oder einen Hostnamen setzen. Der Standardwert für host ist '127.0.0.1'. $options['driverOptions']['username'] = 'username'; $options['driverOptions']['password'] = 'password'; $options['driverOptions']['dbname'] = 'dbname'; Der Name der Datenbank für die man die benötigten Tabellen erstellt hat. Siehe das unten stehende Notizen Kapitel. MemcacheQ - Zend_Queue_Adapter_Memcacheq $options['name'] = 'queue1'; Das ist der Name der Queue die man anfangen will zu verwenden. (Benötigt) $options['driverOptions']['host'] = 'host.domain.tld'; $options['driverOptions']['host'] = '127.0.0.1;' Man kann host auf eine IP Adresse oder einen Hostnamen setzen. Der Standardwert für host ist '127.0.0.1'. $options['driverOptions']['port'] = 22201; Die Standardeinstellung für port ist 22201. Array - Zend_Queue_Adapter_Array $options['name'] = 'queue1'; Das ist der Name der Queue die man anfangen will zu verwenden. (Benötigt) Hinweise für spezielle Adapter Die folgenden Adapter haben Hinweise: ActiveMQ Die Dauer der Sichtbarkeit (visibility duration) ist für Zend_Queue_Adapter_ActiveMQ nicht vorhanden. Wärend Apache's ActiveMQ mehrere Einschreibungen unterstützt, wird das von Zend_Queue nicht unterstützt. Man muss ein neues Zend_Queue Objekt für jede individuelle Einschreibung erstellen. ActiveMQ Queue oder Topic Namen müssen mit einem der folgenden beginnen: /queue/ /topic/ /temp-queue/ /temp-topic/ Zum Beispiel: /queue/testing Die folgenden Funktionen werden nicht unterstützt: create() - Erstellt eine Queue. Der Aufruf dieser Funktion wird eine Exception werfen. delete() - Löscht eine Queue. Der Aufruf dieser Funktion wird eine Exception werfen. getQueues() - Auflisten von Queues. Der Aufruf dieser Funktion wird eine Exception werden. Zend_Db Das Datenbank SQL Statement CREATE TABLE ( ... ) kann in Zend/Queue/Adapter/Db/queue.sql gefunden werden. MemcacheQ Memcache kann von http://www.danga.com/memcached/ heruntergeladen werden. MemcacheQ kann von http://memcachedb.org/memcacheq/ heruntergeladen werden. deleteMessage() - Nachrichten werden von der Queue gelöscht nachdem Sie von der Queue empfangen werden. Der Aufruf dieser Funktion hätte keinen Effekt. Der Aufruf dieser Funktion wird keinen Fehler werfen. count() oder count($adapter) - MemcacheQ unterstützt keine Methode für das Zählen der Anzahl an Elementen in einer Queue. Der Aufruf dieser Funktion wird keinen Fehler werfen. Array (Lokal) Die Array Queue ist ein PHP array() im lokalen Speicher. Zend_Queue_Adapter_Array ist gut für das Unit Testen.