アダプタ

Zend_Queueのカスタマイズ

独自のアダプタ作成

Zend_Queueは、 Zend_Queue_Adapter_AdapterAbstractを実装するどんなアダプタも扱います。 既存のアダプタ、 または抽象クラスZend_Queue_Adapter_AdapterAbstractのうちの1つを拡張することにより、 独自のアダプタを作成できます。 このアダプタとしてZend_Queue_Adapter_Arrayを検討することが、 最も簡単に概念化できると提案します。

  1. span style="color: #808080; font-style: italic;">/**
  2.      * @see tests/Zend/Queue/Custom/DbForUpdate.php のコード
  3.      *
  4.      * Custom_DbForUpdate はその行を見つけるために、SELECT ... FOR UPDATE を使います。
  5.      * 既存のコードよりも求められる列をもたらす可能性がよりあります。
  6.      *
  7.      * しかしながら、データベース全てに SELECT ... FOR UPDATE フィーチャがあるとは限りません。
  8.      *
  9.      * 注意: これは後でZend_Queue_Adapter_Dbのオプションに変換されました。
  10.      *
  11.      * このコードは良い例をまだ提供します。
  12.      */'name'          => 'queue1',
  13.     'driverOptions''host'      => '127.0.0.1',
  14.         'port'      => '3306',
  15.         'username'  => 'queue',
  16.         'password'  => 'queue',
  17.         'dbname'    => 'queue',
  18.         'type'      => 'pdo_mysql'

同様に即座にアダプタを変えることもできます。

  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); // Custom_DbForUpdate をロード

独自のメッセージクラスを作成

Zend_Queueは、独自のメッセージクラスも扱います。 変数はアンダーラインで始めます。 例えば:

  1.  

既存のメッセージクラスを拡張できます。 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でファイル名の例をご覧ください。


アダプタ