NAME

Net::Async::Consul - Make async calls to Consul via IO::Async

SYNOPSIS

  use IO::Async::Loop;
  use Net::Async::Consul;

  my $loop = IO::Async::Loop->new;
  
  my $kv = Net::Async::Consul->kv(loop => $loop);

  # do some blocking op to discover the current index
  $kv->get("mykey", cb => sub { 
    my ($v, $meta) = @_;
  
    # now set up a long-poll to watch a key we're interested in
    $kv->get("mykey", index => $meta->index, cb => sub {
      my ($v, $meta) = @_;
      say "mykey changed to ".$v->value;
      $loop->stop;
    });
  });
  
  # make the change
  $kv->put("mykey" => "newval");
  
  $loop->run;

DESCRIPTION

Net::Async::Consul is a thin wrapper around Consul to connect it to Net::Async::HTTP for asynchronous operation.

It takes the same arguments and methods as Consul itself, so see the documentation for that module for details. The important difference is that you must pass the loop option with the loop object to API methods, the cb option to the endpoint methods to enable their asynchronous mode.

There's also a on_error argument. If you pass in a coderef for this argument, it will be called with a single string arg whenever something goes wrong internally (usually a HTTP failure). Use it to safely log or cleanup after the error.

SUPPORT

Bugs / Feature Requests

Please report any bugs or feature requests through the issue tracker at https://github.com/robn/Net-Async-Consul/issues. You will be notified automatically of any progress on your issue.

Source Code

This is open source software. The code repository is available for public review and contribution under the terms of the license.

https://github.com/robn/Net-Async-Consul

  git clone https://github.com/robn/Net-Async-Consul.git

AUTHORS

  • Rob N ★ <robn@robn.io>

COPYRIGHT AND LICENSE

This software is copyright (c) 2018 by Rob N ★.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.