Adapters
Zend_Queue supports all queues implementing the
interface Zend_Queue_Adapter_AdapterInterface.
The following Message Queue services are supported:
Note: 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.
Apache ActiveMQ - Zend_Queue_Adapter_Activemq
Options 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.
'driverOptions' => array(
'host' => 'db1.domain.tld',
'username' => 'my_username',
'password' => 'my_password',
'dbname' => 'messaging',
'type' => 'pdo_mysql',
'port' => 3306, // optional parameter.
),
// use Zend_Db_Select for update, not all databases can support this
// feature.
Zend_Db_Select::FOR_UPDATE => true
)
);
// Create a database queue.
$queue = new Zend_Queue('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
Notes for Specific Adapters
The following adapters have notes:
Apache 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/mysql.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.
|
|