ngcp-panel/lib/Catalyst/Plugin/NGCP/Redis.pm

32 lines
713 B

package Catalyst::Plugin::NGCP::Redis;
use strict;
use warnings;
use MRO::Compat;
use Redis;
my $conn = {};
sub redis_get_connection {
my ($c, $params) = @_;
my $db = $params->{database} // return;
my $redis;
$redis = $conn->{$db} // do {
$redis = Redis->new(
server => $c->config->{redis}->{central_url},
reconnect => 10, every => 500000, # 500ms
cnx_timeout => 3,
);
unless ($redis) {
$c->log->error("Failed to connect to central redis url " . $c->config->{redis}->{central_url});
return;
}
$redis->select($params->{database});
$conn->{$db} = $redis;
};
return $redis;
}
1;