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.
'queue1',
'driverOptions' => array(
'host' => '127.0.0.1',
'port' => '3306',
'username' => 'queue',
'password' => 'queue',
'dbname' => 'queue',
'type' => 'pdo_mysql'
)
);
$adapter = new Custom_DbForUpdate($options);
$queue = new Zend_Queue($adapter, $options);
]]>
Man kann den Adapter auch im Betrieb ändern.
setAdapter($adapter);
echo "Adapter: ", get_class($queue->getAdapter()), "\n";
]]>
or
'queue1',
'namespace' => 'Custom',
'driverOptions' => array(
'host' => '127.0.0.1',
'port' => '3306',
'username' => 'queue',
'password' => 'queue',
'dbname' => 'queue',
'type' => 'pdo_mysql'
)
);
$queue = new Zend_Queue('DbForUpdate', $config); // loads Custom_DbForUpdate
]]>
Eine eigene Nachrichtenklasse erstellen
Zend_Queue akzeptiert auch eigene Nachrichten Klassen. Unsere
Variablen beginnen mit einem Unterstrich. Zum Beispiel:
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.