Programmer's Reference Guide

Framework

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.

Hinweis: 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.

  1. $options = array(
  2.     'driverOptions' => array(
  3.         'host'      => 'db1.domain.tld',
  4.         'username'  => 'my_username',
  5.         'password'  => 'my_password',
  6.         'dbname'    => 'messaging',
  7.         'type'      => 'pdo_mysql',
  8.         'port'      => 3306, // Optionaler Parameter
  9.     ),
  10.     'options' => array(
  11.         // Verwenden von Zend_Db_Select für das Update, nicht alle Datenbanken
  12.         // unterstützen dieses Feature.
  13.         Zend_Db_Select::FOR_UPDATE => true
  14.     )
  15. );
  16.  
  17. // Eine Datenbank Queue erstellen.
  18. $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.


Framework
blog comments powered by Disqus

Select a Version

Languages Available

Components

Search the Manual