Memory
class Memory implements QueueInterface (View source)
Static queue implementation.
This allows "undelayed" variants of processes relying on the Queue interface. The queue data resides in memory. It should only be used for items that will be queued and dequeued within a given page request.
Properties
| protected array | $queue | The queue data. |
|
| protected int | $idSequence | Counter for item ids. |
Methods
Constructs a Memory object.
Adds a queue item and store it directly to the queue.
Retrieves the number of items in the queue.
Claims an item in the queue for processing.
Deletes a finished item from the queue.
Releases an item that the worker could not process.
Creates a queue.
Deletes a queue and every item in the queue.
Details
__construct(string $name)
Constructs a Memory object.
A
createItem($data)
Adds a queue item and store it directly to the queue.
int
numberOfItems()
Retrieves the number of items in the queue.
This is intended to provide a "best guess" count of the number of items in the queue. Depending on the implementation and the setup, the accuracy of the results of this function may vary.
e.g. On a busy system with a large number of consumers and items, the result might only be valid for a fraction of a second and not provide an accurate representation.
On
claimItem($lease_time = 30)
Claims an item in the queue for processing.
deleteItem($item)
Deletes a finished item from the queue.
bool
releaseItem($item)
Releases an item that the worker could not process.
Another worker can come in and process it before the timeout expires.
createQueue()
Creates a queue.
Called during installation and should be used to perform any necessary initialization operations. This should not be confused with the constructor for these objects, which is called every time an object is instantiated to operate on a queue. This operation is only needed the first time a given queue is going to be initialized (for example, to make a new database table or directory to hold tasks for the queue -- it depends on the queue implementation if this is necessary at all).
deleteQueue()
Deletes a queue and every item in the queue.