Zend_Queueのカスタマイズ
独自のアダプタ作成
Zend_Queueは、
Zend_Queue_Adapter_AdapterAbstractを実装するどんなアダプタも扱います。
既存のアダプタ、
または抽象クラスZend_Queue_Adapter_AdapterAbstractのうちの1つを拡張することにより、
独自のアダプタを作成できます。
このアダプタとしてZend_Queue_Adapter_Arrayを検討することが、
最も簡単に概念化できると提案します。
span style="color: #808080; font-style: italic;">/**
* @see tests/Zend/Queue/Custom/DbForUpdate.php のコード
*
* Custom_DbForUpdate はその行を見つけるために、SELECT ... FOR UPDATE を使います。
* 既存のコードよりも求められる列をもたらす可能性がよりあります。
*
* しかしながら、データベース全てに SELECT ... FOR UPDATE フィーチャがあるとは限りません。
*
* 注意: これは後でZend_Queue_Adapter_Dbのオプションに変換されました。
*
* このコードは良い例をまだ提供します。
*/'name' => 'queue1',
'driverOptions''host' => '127.0.0.1',
'port' => '3306',
'username' => 'queue',
'password' => 'queue',
'dbname' => 'queue',
'type' => 'pdo_mysql'
同様に即座にアダプタを変えることもできます。
span style="color: #ff0000;">"Adapter: ""\n";
or
span style="color: #ff0000;">'name' => 'queue1',
'namespace' => 'Custom',
'driverOptions''host' => '127.0.0.1',
'port' => '3306',
'username' => 'queue',
'password' => 'queue',
'dbname' => 'queue',
'type' => 'pdo_mysql''DbForUpdate', $config); // Custom_DbForUpdate をロード
独自のメッセージクラスを作成
Zend_Queueは、独自のメッセージクラスも扱います。
変数はアンダーラインで始めます。
例えば:
既存のメッセージクラスを拡張できます。
tests/Zend/Queue/Custom/Message.phpでコード例をご覧下さい。
独自のメッセージ・イテレータクラスを作成
Zend_Queueは、独自のメッセージ・イテレータ・クラスも扱います。
メッセージ・イテレータ・クラスは、
Zend_Queue_Adapter_Abstract::recieve()からメッセージを返すために使われます。
たとえメッセージが1つだけだとしても、
Zend_Queue_Abstract::receive()は、
Zend_Queue_Message_Iteratorのようなコンテナ・クラスを常に返さなければなりません。
tests/Zend/Queue/Custom/Messages.phpでファイル名の例をご覧ください。
独自の待ち行列クラスを作成
Zend_Queueは上書きすることも簡単にできます。
tests/Zend/Queue/Custom/Queue.phpでファイル名の例をご覧ください。
|
|