2017 © Pedro Peláez
 

library queue

:postbox: Flexible abstraction for working with queues in PHP.

image

graze/queue

:postbox: Flexible abstraction for working with queues in PHP.

  • Friday, May 25, 2018
  • by graze
  • Repository
  • 25 Watchers
  • 49 Stars
  • 13,188 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 11 Forks
  • 6 Open issues
  • 18 Versions
  • 16 % Grown

The README.md

Queue

, (*1)

![PHP ~5.5][ico-engine] ![Latest Version][ico-package] MIT Licensed Build Status Coverage Status ![Quality Score][ico-quality] Total Downloads, (*2)

This library provides a flexible abstraction layer for working with queues., (*3)

It can be installed in whichever way you prefer, but we recommend Composer., (*4)

~$ composer require graze/queue, (*5)

, (*6)

Documentation

Queue operations center around lists of Message objects. Whether you're sending one or multiple Messages, it's always an array. Workers work only on one Message object at a time, whether a list of one or multiple is received from the queue., (*7)

use Aws\Sqs\SqsClient;
use Graze\Queue\Adapter\SqsAdapter;
use Graze\Queue\Client;
use Graze\Queue\Message\MessageInterface;

$client = new Client(new SqsAdapter(new SqsClient([
    'region'  => 'us-east-1',
    'version' => '2012-11-05',
    'credentials' => [
        'key'    => 'ive_got_the_key',
        'secret' => 'ive_got_the_secret'
    ],
]), 'queue_name'));

// Producer
$client->send([
    $client->create('foo'),
]);

// Consumer
$client->receive(function (MessageInterface $msg) {
    var_dump($msg->getBody());
    var_dump($msg->getMetadata()->getAll());
});

Adapters

The Adapter object is used to fulfill the low level requests to the queue provider., (*8)

Currently supported queue providers are:, (*9)

Handlers

The Handler object is used to execute worker callables with a list of received messages and handle Acknowledgement., (*10)

The current handlers are:, (*11)

use Graze\Queue\Client;
use Graze\Queue\Adapter\ArrayAdapter;
use Graze\Queue\Handler\BatchAcknowledgementHandler;
use Graze\Queue\Message\MessageInterface;

// Create client with the Batch Acknowledgement Handler.
$client = new Client(new ArrayAdapter(), [
    'handler' => new BatchAcknowledgementHandler(),
]);

// Receive a maximum of 10 messages.
$client->receive(function (MessageInterface $message) {
    // Do some work.
}, 10);

Polling

Polling a queue is supported by passing null as the limit argument to the receive method. The second argument given to your worker is a Closure you should use to stop polling when you're finished working. Make sure you use a handler that acknowledges work effectively too!, (*12)

Note that the individual Adapter objects may decide to stop polling at any time. A likely scenario where it may stop would be if the queue is of finite length and all possible messages have been received., (*13)

use Graze\Queue\Client;
use Graze\Queue\Adapter\ArrayAdapter;
use Graze\Queue\Handler\BatchAcknowledgementHandler;
use Graze\Queue\Message\MessageInterface;

// Create client with the Batch Acknowledgement Handler.
$client = new Client(new ArrayAdapter(), [
    'handler' => new BatchAcknowledgeHandler(100), // Acknowledge after 100 messages.
]);

// Poll until `$done()` is called.
$client->receive(function (MessageInterface $message, Closure $done) {
    // Do some work.

    // You should always define a break condition (i.e. timeout, expired session, etc).
    if ($breakCondition) $done();
}, null);

License

The content of this library is released under the MIT License by Nature Delivered Ltd., (*14)

You can find a copy of this license in LICENSE or at http://opensource.org/licenses/mit., (*15)

The Versions

25/05 2018

dev-extend-message-processing-time

dev-extend-message-processing-time

:postbox: Flexible abstraction for working with queues in PHP.

  Sources   Download

MIT

The Requires

 

The Development Requires

01/05 2018
24/06 2016

1.0.x-dev

1.0.9999999.9999999-dev

:postbox: Flexible abstraction for working with queues in PHP.

  Sources   Download

MIT

The Requires

 

The Development Requires

02/12 2015

dev-hamcrest-assertion-count-patch

dev-hamcrest-assertion-count-patch

:postbox: Flexible abstraction for working with queues in PHP.

  Sources   Download

MIT

The Requires

 

The Development Requires

30/11 2015

dev-sjparkinson-patch-1

dev-sjparkinson-patch-1

:postbox: Flexible abstraction for working with queues in PHP.

  Sources   Download

MIT

The Requires

 

The Development Requires

19/10 2015
28/09 2015

dev-delete-queue

dev-delete-queue

:postbox: Flexible abstraction for working with queues in PHP.

  Sources   Download

MIT

The Requires

 

The Development Requires

28/08 2015
30/06 2015

v0.1.1

0.1.1.0

:postbox: Flexible abstraction for working with queues in PHP.

  Sources   Download

MIT

The Requires

 

The Development Requires

29/06 2015

v0.1.0

0.1.0.0

:postbox: Flexible abstraction for working with queues in PHP.

  Sources   Download

The Requires

 

The Development Requires