Skip to content

Instantly share code, notes, and snippets.

@leedo
Created November 3, 2011 23:03
Show Gist options
  • Save leedo/1338202 to your computer and use it in GitHub Desktop.
Save leedo/1338202 to your computer and use it in GitHub Desktop.
sub start_murder_timer {
my $self = shift;
# check every hour for alices that have been idle too long
$self->{murder_t} = AE::timer 0, 60 * 60, sub {
my $day = 60 * 60 * 24;
my %murder_table = (
1 => time - ($day * 3),
2 => time - ($day * 10),
3 => time - ($day * 20),
4 => time - ($day * 30),
);
for my $level (keys %murder_table) {
my $limit = $murder_table{$level};
$self->dbi->select('users', [qw/username/], {level => $level, last_login => {'<' => $limit}, disabled => 0}, sub {
my ($dbh, $rows, $rv) = @_;
for my $row (@$rows) {
my ($username) = @$row;
print STDERR "$username is idle... shutting down\n";
$self->murder_cat($username);
}
});
}
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment