2017 © Pedro Peláez
 

library quedis

Quedis - redis queue

image

simplario/quedis

Quedis - redis queue

  • Tuesday, October 31, 2017
  • by vlad-groznov
  • Repository
  • 7 Watchers
  • 31 Stars
  • 504 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 12 Versions
  • 5 % Grown

The README.md

quedis

Latest Version on Packagist Software License Build Status Coverage Status Quality Score, (*1)

Install

  • PHP 5.6+

``` bash, (*2)

via composer

$ composer require simplario/quedis, (*3)



## Testing ``` bash $ composer test

Start working

``` php <?php, (*4)

// Bootstrap // =========================================, (*5)

require_once(DIR . '/vendor/autoload.php');, (*6)

// Init // =========================================, (*7)

$redis = new \Predis\Client(); $quedis = new \Simplario\Quedis\Queue($redis, 'ExampleNameSpace');, (*8)

// Put message to Quedis // =========================================, (*9)

// add new messages $message11 = $quedis->put('transaction-queue', 'transaction-11'); $message12 = $quedis->put('transaction-queue', new \Simplario\Quedis\Message('transaction-12'));, (*10)

// with delay $message22 = $quedis->put('transaction-queue', 'transaction-21', 60 * 5); $message22 = $quedis->put('transaction-queue', 'transaction-22', (new \DateTime())->modify('+1 day'));, (*11)

// with priority $message32 = $quedis->put('transaction-queue', 'transaction-31', 0, 'high'); $message32 = $quedis->put('transaction-queue', 'transaction-32', 0, 'low');, (*12)

// Get Quedis statistic // =========================================, (*13)

// for concrete queue $queueStat = $quedis->stats('transaction-queue');, (*14)

// for all queues $statsAll = $quedis->stats();, (*15)

// Stop/start queue // =========================================, (*16)

// stop queue $quedis->stop('transaction-queue');, (*17)

// for all queues $quedis->start('transaction-queue');, (*18)

// check $isStop = $quedis->isStop('transaction-queue'); print_r($isStop);, (*19)

/** * * Take message from Quedis * * Message flows (like in the Beanstalk: http://beanstalkc.readthedocs.io/en/latest/tutorial.html ) * ------------------------------------------------------------------------------------------------ * * 1) put pop * -----> [READY] --------> poof * * * 2) put reserve delete * -----> [READY] ---------> [RESERVED] --------> poof * * * 3) put with delay release with delay * ----------------> [DELAYED] <------------. * | | * | (time passes) | * | | * put v reserve | delete * -----------------> [READY] ---------> [RESERVED] --------> poof * ^ ^ | | * | \ release | | * | -------------' | * | | * | kick | * | | * | bury | * [BURIED] <---------------' * | * | delete *--------> poof * */, (*20)

// just pop single message $message = $quedis->pop('transaction-queue'); print_r($message);, (*21)

// just pop single message with timeout (redis blpop timeout) $message = $quedis->pop('transaction-queue', 10); print_r($message);, (*22)

// reserve flow $message = $quedis->reserve('transaction-queue', 10); $quedis->delete($message);, (*23)

// reserve > bury > kick > reserve > delete $message = $quedis->reserve('transaction-queue', 10); // something goes wrong ... $quedis->bury($message); // ok lets retry one more time ... $quedis->kick($message); $messageSame = $quedis->reserve($message); // all is ok! $quedis->delete($messageSame);, (*24)

// Iterator usage // =========================================, (*25)

// iterate reserve all messages $iterator = $quedis->iterator('transaction-queue', 'reserve', 10); foreach($iterator as $index => $message){ print_r($message);, (*26)

$quedis->delete($message);

}, (*27)

// or like standalone with pop logic $queue = new \Simplario\Quedis\Queue(new \Predis\Client(), 'super-puper-quedis'); $iterator = new \Simplario\Quedis\Iterator($queue, 'transaction-queue', 'pop', 10); foreach($iterator as $index => $message){ print_r($message); }, (*28)

```, (*29)

License

The MIT License (MIT). Please see License File for more information., (*30)

The Versions

31/10 2017

dev-feature-divide-commands

dev-feature-divide-commands

Quedis - redis queue

  Sources   Download

MIT

The Development Requires

31/10 2017

dev-dev

dev-dev

Quedis - redis queue

  Sources   Download

MIT

The Development Requires

31/10 2017

dev-master

9999999-dev

Quedis - redis queue

  Sources   Download

MIT

The Development Requires

31/10 2017

v2.0.0

2.0.0.0

Quedis - redis queue

  Sources   Download

MIT

The Development Requires

31/10 2017

v1.2.0

1.2.0.0

Quedis - redis queue

  Sources   Download

MIT

The Development Requires

30/10 2017

v1.1.5

1.1.5.0

Quedis - redis queue

  Sources   Download

MIT

The Development Requires

27/10 2017

v1.1.4

1.1.4.0

Quedis - redis queue

  Sources   Download

MIT

The Development Requires

25/10 2017

v1.1.3

1.1.3.0

Quedis - redis queue

  Sources   Download

MIT

The Development Requires

19/09 2017

v1.1.2

1.1.2.0

Quedis - redis queue

  Sources   Download

MIT

The Development Requires

19/09 2017

v1.1.1

1.1.1.0

Quedis - redis queue

  Sources   Download

MIT

The Development Requires

18/09 2017

v1.1.0

1.1.0.0

Quedis - redis queue

  Sources   Download

MIT

The Development Requires

17/09 2017

v1.0.0

1.0.0.0

Quedis - redis queue

  Sources   Download

MIT

The Development Requires