NAME
DBIx::DBHResolver::Strategy::List - write short description for DBIx::DBHResolver::Strategy::List
SYNOPSIS
use DBIx::DBHResolver;
use DBIx::DBHResolver::Strategy::List;
our %BLOOD_TYPES = (
UNKNOWN => 0,
A => 1,
B => 2,
O => 3,
AB => 4,
);
my $resolver = DBIx::DBHResolver->new;
$resolver->config(+{
clusters => +{
BLOOD => +{
node => [ qw/BLOOD_A BLOOD_B BLOOD_O BLOOD_AB_OR_UNKNOWN/ ],
strategy => 'List',
strategy_config => +{
BLOOD_A => [qw/1/],
BLOOD_B => [qw/2/],
BLOOD_O => [qw/3/],
BLOOD_AB_OR_UNKNOWN => [qw/0 4/]
},
}
},
connect_info => +{
BLOOD_A => +{ ... },
BLOOD_B => +{ ... },
BLOOD_O => +{ ... },
BLOOD_AB_OR_UNKNOWN => +{ ... },
},
});
my $strategy = 'DBIx::DBHResolver::Strategy::List';
$strategy->connect_info( $resolver, 'BLOOD', $BLOOD_TYPE{A} ); # return BLOOD_A's connect_info
$strategy->connect_info( $resolver, 'BLOOD', $BLOOD_TYPE{B} ); # return BLOOD_B's connect_info
$strategy->connect_info( $resolver, 'BLOOD', $BLOOD_TYPE{O} ); # return BLOOD_O's connect_info
$strategy->connect_info( $resolver, 'BLOOD', $BLOOD_TYPE{AB} ); # return BLOOD_AB_OR_UNKNOWN's connect_info
$strategy->connect_info( $resolver, 'BLOOD', $BLOOD_TYPE{UNKNOWN} ); # return BLOOD_AB_OR_UNKNOWN's connect_info
DESCRIPTION
This module is list based sharding strategy.
METHODS
connect_info( $resolver, $node_or_cluster, $args )
Return connect_info hash ref.
resolve( $resolver, $node_or_cluster, $key, $args )
Return resolved node_or_cluster name.
AUTHOR
Toru Yamaguchi <zigorou@dena.jp<gt>
LICENSE
This module is licensed under the same terms as Perl itself.