table of contents
DR::Tarantool::LLClient(3pm) | User Contributed Perl Documentation | DR::Tarantool::LLClient(3pm) |
NAME¶
DR::Tarantool::LLClient - a low level async client for Tarantool <http://tarantool.org>
SYNOPSIS¶
DR::Tarantool::LLClient->connect( host => '127.0.0.1', port => '33033', cb => { my ($tnt) = @_; ... } ); $tnt->ping( sub { .. } ); $tnt->insert(0, [ 1, 2, 3 ], sub { ... }); $tnt->select(1, 0, [ [ 1, 2 ], [ 3, 4 ] ], sub { ... }); $tnt->update(0, [ 1 ], [ [ 1 => add pack 'L<', 1 ] ], sub { ... }); $tnt->call_lua( 'box.select', [ 0, 1, 2 ], sub { ... });
DESCRIPTION¶
This module provides a low-level interface to Tarantool <http://tarantool.org>.
METHODS¶
All methods receive callback as the last argument. The callback receives HASHREF value with the following fields:
- status
- Done status:
- errstr
- If an error occurred, contains error description.
- code
- Contains reply code.
- req_id
- Contains request id. (see protocol documentation <https://github.com/mailru/tarantool/blob/master/doc/box-protocol.txt>)
- type
- Contains request type (see protocol documentation <https://github.com/mailru/tarantool/blob/master/doc/box-protocol.txt>)
- count
- Contains the count of returned tuples.
- tuples
- Returned tuples (ARRAYREF of ARRAYREF).
If you use NUM or NUM64 field types, values for these fields need to be packed before they are sent to the server, and unpacked when received in a response. This is a low-level driver :)
connect¶
Creates a connection to Tarantool
DR::Tarantool::LLClient->connect( host => '127.0.0.1', port => '33033', cb => { my ($tnt) = @_; ... } );
Arguments
- host & port
- Host and port to connect to.
- reconnect_period
- An interval to wait before trying to reconnect after a fatal error or
unsuccessful connect. If the field is defined and is greater than 0, the
driver tries to reconnect to the server after this interval.
Important: the driver does not reconnect after the first unsuccessful connection. It calls callback instead.
- reconnect_always
- Try to reconnect even after the first unsuccessful connection.
- cb
- Done callback. The callback receives a connection handle connected to the server or an error string.
is_connected¶
True if this connection is established.
connection_status¶
Contains a string with the status of connection. Return value can be:
- ok
- Connection is established.
- not_connected
- Connection isn't established yet, or was lost.
- connecting
- The driver is connecting to the server.
- fatal
- An attempt to connect was made, but ended up with an error. If the event loop is running, and reconnect_period option is set, the driver continues to try to reconnect and update its status.
ping¶
Ping the server.
$tnt->ping( sub { .. } );
Arguments
insert¶
Insert a tuple.
$tnt->insert(0, [ 1, 2, 3 ], sub { ... }); $tnt->insert(0, [ 4, 5, 6 ], $flags, sub { .. });
Arguments
select¶
Select a tuple or tuples.
$tnt->select(1, 0, [ [ 1, 2 ], [ 3, 4 ] ], sub { ... }); $tnt->select(1, 0, [ [ 1, 2 ], [ 3, 4 ] ], 1, sub { ... }); $tnt->select(1, 0, [ [ 1, 2 ], [ 3, 4 ] ], 1, 2, sub { ... });
Arguments
- space
- index
- tuple_keys
- limit (optional)
- If the limit isn't set or is zero, select extracts all records without a limit.
- offset (optional)
- Default value is 0.
- callback for results
update¶
Update a tuple.
$tnt->update(0, [ 1 ], [ [ 1 => add 1 ] ], sub { ... }); $tnt->update( 0, # space [ 1 ], # key [ [ 1 => add 1 ], [ 2 => add => 1 ], # operations $flags, # flags sub { ... } # callback ); $tnt->update(0, [ 1 ], [ [ 1 => add 1 ] ], $flags, sub { ... });
Arguments
- space
- tuple_key
- operations list
- flags (optional)
- callback for results
delete¶
Delete a tuple.
$tnt->delete( 0, [ 1 ], sub { ... }); $tnt->delete( 0, [ 1 ], $flags, sub { ... });
Arguments
- space
- tuple_key
- flags (optional)
- callback for results
call_lua¶
Calls a lua procedure.
$tnt->call_lua( 'box.select', [ 0, 1, 2 ], sub { ... }); $tnt->call_lua( 'box.select', [ 0, 1, 2 ], $flags, sub { ... });
Arguments
- name of the procedure
- tuple_key
- flags (optional)
- callback to call when the request is ready
last_code¶
Return code of the last request or undef if there was no request.
last_error_string¶
An error string if the last request ended up with an error, or undef otherwise.
Logging¶
The module can log requests/responses. Logging can be turned ON by setting these environment variables:
- TNT_LOG_DIR
- Instructs LLClient to record all requests/responses into this directory.
- TNT_LOG_ERRDIR
- Instructs LLClient to record all requests/responses which ended up with an error into this directory.
COPYRIGHT AND LICENSE¶
Copyright (C) 2011 Dmitry E. Oboukhov <unera@debian.org> Copyright (C) 2011 Roman V. Nikolaev <rshadow@rambler.ru> This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License.
VCS¶
The project is placed git repo on github: <https://github.com/dr-co/dr-tarantool/>.
2019-10-07 | perl v5.30.0 |