Adapter

Anpassen von Zend_Queue

Erstellung eigener Adapter

Zend_Queue akzeptiert jeden Adapter der Zend_Queue_Adapter_AdapterAbstract implementiert. Man kann eigene Adapter erstellen indem einer der existierenden Adapter, oder die abstrakte Klasse Zend_Queue_Adapter_AdapterAbstract erweitert wird. Es wird empfohlen Zend_Queue_Adapter_Array anzuschauen da dieser Adapter in seiner Konzeption der einfachste ist.

  1. span style="color: #808080; font-style: italic;">/**
  2.      * @see Code in tests/Zend/Queue/Custom/DbForUpdate.php
  3.      *
  4.      * Custom_DbForUpdate verwendet SELECT ... FOR UPDATE um seine Zeilen zu
  5.      * finden. Das ist besser um die gewünschten Zeilen zu erstellen als der
  6.      * existierende Code.
  7.      *
  8.      * Trotzdem haben nicht alle Datenbanken SELECT ... FOR UPDATE als Feature.
  9.      *
  10.      * Notiz: Das wurde später konvertiert um eine Option für
  11.      * Zend_Queue_Adapter_Db zu sein.
  12.      *
  13.      * Dieser Code ist trotzdem ein gutes Beispiel.
  14.      */'name'          => 'queue1',
  15.     'driverOptions''host'      => '127.0.0.1',
  16.         'port'      => '3306',
  17.         'username'  => 'queue',
  18.         'password'  => 'queue',
  19.         'dbname'    => 'queue',
  20.         'type'      => 'pdo_mysql'

Man kann den Adapter auch im Betrieb ändern.

  1. span style="color: #ff0000;">"Adapter: ""\n";

or

  1. span style="color: #ff0000;">'name'           => 'queue1',
  2.     'namespace'      => 'Custom',
  3.     'driverOptions''host'       => '127.0.0.1',
  4.         'port'       => '3306',
  5.         'username'   => 'queue',
  6.         'password'   => 'queue',
  7.         'dbname'     => 'queue',
  8.         'type'       => 'pdo_mysql''DbForUpdate', $config); // loads Custom_DbForUpdate

Eine eigene Nachrichtenklasse erstellen

Zend_Queue akzeptiert auch eigene Nachrichten Klassen. Unsere Variablen beginnen mit einem Unterstrich. Zum Beispiel:

  1.  

Man kann die bestehende Nachrichten Klasse erweitern. Siehe den Beispielcode in tests/Zend/Queue/Custom/Message.php.

Erstellen einer eigenen Nachrichten Iterator Klasse

Zend_Queue akzeptiert auch eine eigene Nachrichten Iterator Klasse. Diese Nachrichten Iterator Klasse wird verwendet um Nachrichten von Zend_Queue_Adapter_Abstract::recieve() zurckzugeben. Zend_Queue_Abstract::receive() sollte immer eine Controller Klasse zurückgeben so wie Zend_Queue_Message_Iterator selbst wenn nur eine Nachricht vorhanden ist.

Siehe den Beispiel Dateinamen in tests/Zend/Queue/Custom/Messages.php.

Erstellen einer eigenen Queue Klasse

Zend_Queue kann auch sehr einfach überladen werden.

Siehe den Beispiel Dateinamen in tests/Zend/Queue/Custom/Queue.php.


Adapter