The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DBIx::DSN::Resolver::Cached - Cached resolver for DBIx::DSN::Resolver

SYNOPSIS

  use 5.10.0;
  use DBIx::DSN::Resolver::Cached;

  sub connect_db {
      state $resolver = DBIx::DSN::Resolver::Cached->new(
          ttl => 30,
          negative_ttl => 5,
      );
      my $dsn = $resolver->resolv('dbi:mysql:database=mytbl;host=myserver.example');
      DBI->connect($dsn,'user','password');
  }

DESCRIPTION

DBIx::DSN::Resolver::Cached is extension module of DBIx::DSN::Resolver. This module allows CACHE resolver response, useful for reduce load of DNS. DBIx::DSN::Resolver::Cached also supports DNS-RR

OPTIONS

ttl: Int

positive cache ttl in seconds. (default: 5)

negative_ttl: Int

negative cache ttl in seconds. (default: 1)

cache: Object

Cache object, requires support get and set methods. default: Cache::Memory::Simple is used

FUNCTION

dsn_resolver($dsn: Str)

shortcut function for

  state $resolver = DBIx::DSN::Resolver::Cached->new();
  $resolver->resolv('dbi:mysql:database=mytbl;host=myserver.example')

To customize ttl, negative_ttl and cache object. override $DBIx::DSN::Resolver::Cached::RESOLVER

  my $other_ttl = DBIx::DSN::Resolver::Cached->new(
        ttl => ..
  );
  sub {
      local $DBIx::DSN::Resolver::Cached::RESOLVER = $other_ttl;
      dsn_resolver($dsn);
  }

AUTHOR

Masahiro Nagano <kazeburo {at} gmail.com>

SEE ALSO

DBIx::DSN::Resolver, Cache::Memory::Simple

LICENSE

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