DR-TarantoolQueue
view release on metacpan or search on metacpan
lib/DR/TarantoolQueue.pm view on Meta::CPAN
require DR::TarantoolQueue::Task;
$Carp::Internal{ (__PACKAGE__) }++;
our $VERSION = '0.44';
use feature 'state';
=head1 NAME
DR::TarantoolQueue - client for tarantool's queue
=head1 SYNOPSIS
my $queue = DR::TarantoolQueue->new(
host => 'tarantool.host',
port => 33014,
tube => 'request_queue',
space => 11,
connect_opts => { # see perldoc DR::Tarantool
reconnect_period => 1,
reconnect_always => 1
}
);
# put empty task into queue with name 'request_queue'
my $task = $queue->put;
my $task = $queue->put(data => [ 1, 2, 3 ]);
printf "task.id = %s\n", $task->id;
=head2 DESCRIPTION
The module contains sync and async (coro) driver for tarantool queue.
=head1 ATTRIBUTES
=head2 host (ro) & port (ro)
Tarantool's parameters.
=head2 connect_opts (ro)
Additional options for L<DR::Tarantool>. HashRef.
=head2 fake_in_test (ro, default=true)
Start fake tarantool (only for msgpack) if C<($0 =~ /\.t$/)>.
For the case the driver uses the following lua code:
log.info('Fake Queue starting')
box.cfg{ listen = os.getenv('PRIMARY_PORT') }
box.schema.user.create('test', { password = 'test' })
box.schema.user.grant('test', 'read,write,execute', 'universe')
_G.queue = require('megaqueue')
queue:init()
log.info('Fake Queue started')
=head2 msgpack (ro)
If true, the driver will use L<DR::Tnt> driver (C<1.6>). Also it will use
L<tarantool-megaqueue|https://github.com/dr-co/tarantool-megaqueue> lua
module with namespace C<queue>.
=head2 coro (ro)
If B<true> (default) the driver will use L<Coro> tarantool's driver,
otherwise the driver will use sync driver.
=head2 ttl (rw)
Default B<ttl> for tasks.
=head2 ttr (rw)
Default B<ttr> for tasks.
=head2 pri (rw)
Default B<pri> for tasks.
=head2 delay (rw)
Default B<delay> for tasks.
=head2 space (rw)
Default B<space> for tasks.
=head2 tube (rw)
Default B<tube> for tasks.
=head2 defaults
Defaults for queues. B<HashRef>. Key is tube name. Value is a hash with
the following fields:
=over
=item ttl
=item ttr
=item delay
=item pri
=back
Methods L</put> (L</urgent>) use these parameters if they
are absent (otherwise it uses the same global attributes).
( run in 2.066 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )