Catalyst-Plugin-Session-Store-BerkeleyDB
view release on metacpan or search on metacpan
lib/Catalyst/Plugin/Session/Store/BerkeleyDB.pm view on Meta::CPAN
sub delete_expired_sessions {
my($c, $id) = @_;
my $manager = $c->$_manager;
my $db = $c->$_db;
$manager->txn_do(sub {
my ($key, $value) = ("", "");
# find out what we need to delete
my %to_delete;
my $all = $db->db_cursor;
while( 0 == $all->c_get( $key, $value, DB_NEXT ) ){
if($key =~ /^expires:(.+)$/){
$to_delete{$1} = 1 if time > $value;
}
}
# then delete all of those
$all = $db->db_cursor;
while( 0 == $all->c_get( $key, $value, DB_NEXT ) ){
my ($name, $id) = split /:/, $key;
$all->c_del() and warn "bye, $key" if $to_delete{$id};
};
});
}
1;
__END__
( run in 0.227 second using v1.01-cache-2.11-cpan-4d50c553e7e )