Zend Framework: Zend_Queue_Adapter_Starling Component Proposal
| Proposed Component Name | Zend_Queue_Adapter_Starling |
|---|---|
| Developer Notes | http://framework.zend.com/wiki/display/ZFDEV/Zend_Queue_Adapter_Starling |
| Proposers | Tokarchuk Andrey |
| Zend Liaison | TBD |
| Revision | 1.0 - 21 May 2011: Initial Draft. (wiki revision: 5) |
Table of Contents
1. Overview
Zend_Queue_Adapter_Starling is a component that add support to Starling queue server into Zend_Queue component.
2. References
- Starling homepage at GitHub
- Starling ruby gem
- Starling: A Ruby Persistent Queue Server That Speaks Memcached
- Integrating Starling into Zend Framework (rus)
3. Component Requirements, Constraints, and Acceptance Criteria
- This component will provide operations adding message.
- This component will provide operations retreiving message.
- This component will provide operations adding queue.
- This component will provide operations deleting queue Starling server with all messages.
- This component will provide operations counting message in the queue.
- This component will provide retrieving list of he queues in the server.
- This component will not support deleting message from the queue, only retreive with deleting.
- This component will use Zend_Queue_Adapter_Memcacheq because Starling has Memcached protocol (with some difference).
- This component will not save any data using Zend_Cache or the filesystem.
4. Dependencies on Other Framework Components
- Zend_Exception
- Zend_Queue_Adapter_Memcacheq
5. Theory of Operation
The component is instantiated with a mind-link that:
$starling = new Zend_Queue(new ZendExtra_Queue_Adapter_Starling(array()), array('name' => 'myqueue1'));
6. Milestones / Tasks
- Milestone 1: [DONE] design notes will be published here
- Milestone 2: [DONE] Making class sceleton and prototype.
- Milestone 3: Working prototype checked into the incubator supporting use cases #1, #2.
- Milestone 4: Initial documentation exists.
7. Class Index
- Zend_Queue_Adapter_Starling
8. Use Cases
| UC-01 |
|---|
// Add job to queue
$starling = new Zend_Queue(new ZendExtra_Queue_Adapter_Starling(array()), array('name' => 'myqueue1'));
$starling->send(array('jobKey' => 'jobText'));
| UC-02 |
|---|
// Get job from queue
$starling = new Zend_Queue(new ZendExtra_Queue_Adapter_Starling(array()), array('name' => 'myqueue1'));
var_dump($starling->receive(2)->toArray()); // Messages also deleting from queue