15 March 2010

Zend_Queue и подключение к нескольким очередям (в СУБД)

Довольно часты бывает нужно в одном скрипте подключиться к нескольким очередям (которые хранятся в СУБД). В ZF (Zend_Queue) до недавнего времени не было такой возможности, появилась она только в 1.10.

Указываем вместо:
$someQueue = new Zend_Queue('Db', array(
  'driverOptions' => array(
   'host'      => 'host',
   'username'  => 'username',
   'password'  => 'password',
   'dbname'    => 'dbname',
   'type'      => 'pdo_mysql',
  ),
  'options' => array(
   Zend_Db_Select::FOR_UPDATE => true
  ),
  'name' => 'some-queue'
 )
);

Вот это:

$connection = Zend_Db::factory(
 'Pdo_Mysql',
 array(
  'host'      => 'host',
  'username'  => 'username',
  'password'  => 'password',
  'dbname'    => 'dbname',
 )
);

$someQueue = new Zend_Queue('Db', array(
  'dbAdapter' => $connection,
  'options' => array(
   Zend_Db_Select::FOR_UPDATE => true
  ),
  'name' => 'some-queue'
 )
);

$anotherQueue = new Zend_Queue('Db', array(
  'dbAdapter' => $connection,
  'options' => array(
   Zend_Db_Select::FOR_UPDATE => true
  ),
  'name' => 'another-queue'
 )
);

$someQueue и $anotherQueue делаят одно подключение. Completed!

No comments: