Adapters
Zend_Queue supports all queues implementing the
interface Zend_Queue_Adapter_AdapterInterface.
The following Message Queue services are supported:
ApacheMQ.
A database driven queue via Zend_Db.
A MemcacheQ
queue driven via Memcache.
A local array. Useful for unit testing.
Limitations
Message transaction handling is not supported.
Specific Adapters - Configuration settings
If a default setting is indicated then the parameter is optional.
If a default setting is not specified then the parameter is
required.
ApacheMQ - Zend_Queue_Adapter_Apachemq
Options here listed here are known requirements. Not all
messaging servers require username or password.
$options['name'] = '/temp/queue1';
This is the name of the queue that you wish to start
using. (Required)
$options['driverOptions']['host'] = 'host.domain.tld';
$options['driverOptions']['host'] = '127.0.0.1';
You may set host to an IP address or a hostname.
Default setting for host is '127.0.0.1'.
$options['driverOptions']['port'] = 61613;
Default setting for port is 61613.
$options['driverOptions']['username'] = 'username';
Optional for some messaging servers. Read the manual
for your messaging server.
$options['driverOptions']['password'] = 'password';
Optional for some messaging servers. Read the manual
for your messaging server.
$options['driverOptions']['timeout_sec'] = 2;
$options['driverOptions']['timeout_usec'] = 0;
This is the amount of time that
Zend_Queue_Adapter_Activemq will wait for
read activity on a socket before returning no messages.
Db - Zend_Queue_Adapter_Db
Driver options are checked for a few required options such
as type, host,
username, password,
and dbname. You may pass along
additional parameters for Zend_DB::factory() as parameters
in $options['driverOptions']. An example of an additional
option not listed here, but could be passed would be port.
array(
'host' => 'db1.domain.tld',
'username' => 'my_username',
'password' => 'my_password',
'dbname' => 'messaging',
'type' => 'pdo_mysql',
'port' => 3306, // optional parameter.
),
'options' => array(
// use Zend_Db_Select for update, not all databases can support this
// feature.
Zend_Db_Select::FOR_UPDATE => true
)
);
// Create a database queue.
$queue = Zend_Queue::factory('Db', $options);
]]>
$options['name'] = 'queue1';
This is the name of the queue that you wish to start using. (Required)
$options['driverOptions']['type'] = 'Pdo';
type is the adapter you wish to have
Zend_Db::factory() use. This is
the first parameter for the
Zend_Db::factory() class
method call.
$options['driverOptions']['host'] = 'host.domain.tld';
$options['driverOptions']['host'] = '127.0.0.1';
You may set host to an IP address or a hostname.
Default setting for host is '127.0.0.1'.
$options['driverOptions']['username'] = 'username';
$options['driverOptions']['password'] = 'password';
$options['driverOptions']['dbname'] = 'dbname';
The database name that you have created the required tables for.
See the notes section below.
MemcacheQ - Zend_Queue_Adapter_Memcacheq
$options['name'] = 'queue1';
This is the name of the queue that you wish to start using. (Required)
$options['driverOptions']['host'] = 'host.domain.tld';
$options['driverOptions']['host'] = '127.0.0.1;'
You may set host to an IP address or a hostname.
Default setting for host is '127.0.0.1'.
$options['driverOptions']['port'] = 22201;
The default setting for port is 22201.
Array - Zend_Queue_Adapter_Array
$options['name'] = 'queue1';
This is the name of the queue that you wish to start using. (Required)
Notes for Specific Adapters
The following adapters have notes:
ActiveMQ
Visibility duration for
Zend_Queue_Adapter_ActiveMQ is not
available.
While Apache's ActiveMQ will support multiple subscriptions, the
Zend_Queue does not. You must create a
new Zend_Queue object for each individual
subscription.
ActiveMQ queue/topic names must begin with one of:
/queue/
/topic/
/temp-queue/
/temp-topic/
For example: /queue/testing
The following functions are not supported:
create() - create queue.
Calling this function will throw an exception.
delete() - delete queue.
Calling this function will throw an exception.
getQueues() - list queues.
Calling this function will throw an exception.
Zend_Db
The database CREATE TABLE ( ... ) SQL
statement can be found in Zend/Queue/Adapter/Db/queue.sql.
MemcacheQ
Memcache can be downloaded from http://www.danga.com/memcached/.
MemcacheQ can be downloaded from http://memcachedb.org/memcacheq/.
deleteMessage() - Messages are deleted upon
reception from the queue. Calling this function would
have no effect. Calling this function will throw an
error.
count() or count($adapter)
- MemcacheQ does not support a method for counting the number of items in
a queue. Calling this function will throw an error.
Array (local)
The Array queue is a PHP array()
in local memory. The Zend_Queue_Adapter_Array is good for
unit testing.