marcellodash/queue
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Q
U
E
U
E Plugin for CakePHP
---- Queue is a CakePHP plugin for interfacing with beanstalkd, a fast,
distributed, in-memory workqueue service.
Synopsis
--------
This plugin was started with the idea that it may become a place for
classes connecting to various kinds[1] of queues. However since ages there
has support for beanstalkd only, which is a fantastic queue btw.
[1] http://groups.google.com/group/cake-php/msg/c557a3fdc36bbda9
Status
------
Originally written for CakePHP 1.3 and maintained since as early as 2009 by
davidpersson, who declared it unsupported in 2012
Port to 2.x largely by carlipa
Authors
-------
See the AUTHORS file.
Copyright & License
-------------------
Queue Plugin for CakePHP is Copyright (c) 2009-2012 David Persson
if not otherwise stated. The code is distributed under the terms
of the MIT License. For the full license text see the LICENSE file.
Download
--------
http://github.com/davidpersson/queue/downloads
Installation
------------
1. Extract the downloaded archive.
2. Move or copy the extracted directory davidpersson-queue-[hash]
to /path/to/your/app/plugins/queue.
3. Configure the connection to the queue server in your database.php.
You may also add 'host' and 'port' keys depending on your setup.
{{{
// ...
'queue' => array('datasource' => 'beanstalkd')
}}}
Versions & Requirements
-----------------------
1.x, CakePHP 1.3.x, PHP >=5.2.1, beanstalkd >=1.2
2.x, CakePHP 2.x, PHP >=5.2.1, beanstalkd >=1.2
Usage
-----
1. Start the beanstalkd server.
2. Add jobs to the queue utilizing the included job model.
{{{
return ClassRegistry::init('Queue.Job')->put(compact('file', 'process'));
}}}
3. Start the included debug worker.
$ cake queue
Other notes
-----
The stream_get_line function is bugged in PHP 5.3.10, which is unfortunately
the version that Ubuntu 12.04 LTS ships with.
This function is used in the _read() function of Lib/BeanstalkdSocket.php,
so as a workaround you can replace that line with these:
{{{
$data = fgets($this->_connection, 16384);
$packet = rtrim($data, "\r\n");
}}}