Herald van der Breggen > Queue-Q-0.17 > Queue::Q::NaiveFIFO::Redis

Download:
Queue-Q-0.17.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  1
Open  0
View/Report Bugs
Source   Latest Release: Queue-Q-0.23

NAME ^

Queue::Q::NaiveFIFO::Redis - In-memory Redis implementation of the NaiveFIFO queue

SYNOPSIS ^

  use Queue::Q::NaiveFIFO::Redis;
  my $q = Queue::Q::NaiveFIFO::Redis->new(
      server     => 'myredisserver',
      port       => 6379,
      queue_name => 'my_work_queue',
  );
  $q->enqueue_item("foo");
  $q->enqueue_item({ bar => "baz" }); # any Sereal-serializable data structure
  my $foo = $q->claim_item;
  my $bar = $q->claim_item;

DESCRIPTION ^

Implements interface defined in Queue::Q::NaiveFIFO: an implementation based on Redis lists.

The data structures passed to enqueue_item are serialized using Sereal (cf. Sereal::Encoder, Sereal::Decoder), so any data structures supported by that can be enqueued.

METHODS ^

All methods of Queue::Q::NaiveFIFO plus:

new

Constructor. Takes named parameters. Required parameters are the server hostname or address, the Redis port, and the name of the Redis key to use as the queue_name.

You may optionally specify a Redis db number to use. Since this module will establish the Redis connection, you may pass in a hash reference of options that are valid for the constructor of the Redis module. This can be passed in as the redis_options parameter.

claim_item($timeout_secs)

The claim_item method has an optional parameter here, which is the timeout in seconds it will wait for a new item. Default wait time is one second. Using a timeout > 0 sec, no additional sleep() calls are needed and items will be available to the consumer without a delay.

AUTHOR ^

Steffen Mueller, <smueller@cpan.org>

COPYRIGHT AND LICENSE ^

Copyright (C) 2012 by Steffen Mueller

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.1 or, at your option, any later version of Perl 5 you may have available.

syntax highlighting: