Programmer's Reference Guide
| 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.
- class Custom_DbForUpdate extends Zend_Queue_Adapter_Db
- {
- /**
- * @see Code in tests/Zend/Queue/Custom/DbForUpdate.php
- *
- * Custom_DbForUpdate verwendet SELECT ... FOR UPDATE um seine Zeilen zu
- * finden. Das ist besser um die gewünschten Zeilen zu erstellen als der
- * existierende Code.
- *
- * Trotzdem haben nicht alle Datenbanken SELECT ... FOR UPDATE als Feature.
- *
- * Notiz: Das wurde später konvertiert um eine Option für
- * Zend_Queue_Adapter_Db zu sein.
- *
- * Dieser Code ist trotzdem ein gutes Beispiel.
- */
- }
- 'name' => 'queue1',
- 'host' => '127.0.0.1',
- 'port' => '3306',
- 'username' => 'queue',
- 'password' => 'queue',
- 'dbname' => 'queue',
- 'type' => 'pdo_mysql'
- )
- );
- $adapter = new Custom_DbForUpdate($options);
- $queue = Zend_Queue($adapter, $options);
Man kann den Adapter auch im Betrieb ändern.
or
Eine eigene Nachrichtenklasse erstellen
Zend_Queue akzeptiert auch eigene Nachrichten Klassen. Unsere Variablen beginnen mit einem Unterstrich. Zum Beispiel:
- class Zend_Queue_Message
- {
- }
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 |
