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.