32 lines
713 B
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;
|