AnyEvent-RipeRedis
view release on metacpan or search on metacpan
examples/subs.pl view on Meta::CPAN
);
# Subscribe to channels by pattern
$redis->psubscribe( @patterns,
{ on_reply => sub {
my $reply = shift;
my $err = shift;
if ( defined $err ) {
warn $err->message . "\n";
return;
};
print 'Subscribed on: ' . join( ', ', @patterns ). "\n";
},
on_message => sub {
my $message = shift;
my $pattern = shift;
my $channel = shift;
print "$pattern ($channel): $message\n";
},
}
);
# Unsubscribe
my $on_signal = sub {
print "Stopped\n";
$redis->unsubscribe( @channels,
sub {
my $msg = shift;
my $err = shift;
if ( defined $err ) {
warn $err->message . "\n";
return;
};
print 'Unsubscribed from: ' . join( ', ', @channels ). "\n";
}
);
$redis->punsubscribe( @patterns,
sub {
my $msg = shift;
my $err = shift;
if ( defined $err ) {
warn $err->message . "\n";
return;
};
print 'Unsubscribed from: ' . join( ', ', @patterns ). "\n";
$cv->send;
}
);
my $timer;
$timer = AE::timer( 5, 0,
sub {
undef( $timer );
exit 0; # Emergency exit
},
);
};
my $int_w = AE::signal( INT => $on_signal );
my $term_w = AE::signal( TERM => $on_signal );
$cv->recv;
$redis->disconnect;
( run in 2.792 seconds using v1.01-cache-2.11-cpan-02777c243ea )