maintenance: remove checkins which were entered more than 48 hours ago
This commit is contained in:
parent
e7f278574f
commit
c6634b4097
1 changed files with 11 additions and 3 deletions
|
@ -3,14 +3,15 @@ use Mojo::Base 'Mojolicious::Command';
|
||||||
|
|
||||||
use DateTime;
|
use DateTime;
|
||||||
|
|
||||||
has description => 'Prune unverified users etc';
|
has description => 'Prune unverified users, incomplete checkins etc';
|
||||||
|
|
||||||
has usage => sub { shift->extract_usage };
|
has usage => sub { shift->extract_usage };
|
||||||
|
|
||||||
sub run {
|
sub run {
|
||||||
my ( $self, $filename ) = @_;
|
my ( $self, $filename ) = @_;
|
||||||
|
|
||||||
my $now = DateTime->now( time_zone => 'Europe/Berlin' );
|
my $now = DateTime->now( time_zone => 'Europe/Berlin' );
|
||||||
|
my $checkin_deadline = $now->clone->subtract( hours => 48 );
|
||||||
my $verification_deadline = $now->clone->subtract( hours => 48 );
|
my $verification_deadline = $now->clone->subtract( hours => 48 );
|
||||||
my $deletion_deadline = $now->clone->subtract( hours => 72 );
|
my $deletion_deadline = $now->clone->subtract( hours => 72 );
|
||||||
my $old_deadline = $now->clone->subtract( years => 1 );
|
my $old_deadline = $now->clone->subtract( years => 1 );
|
||||||
|
@ -18,6 +19,13 @@ sub run {
|
||||||
my $db = $self->app->pg->db;
|
my $db = $self->app->pg->db;
|
||||||
my $tx = $db->begin;
|
my $tx = $db->begin;
|
||||||
|
|
||||||
|
my $res = $db->delete( 'in_transit',
|
||||||
|
{ checkin_time => { '<', $checkin_deadline } } );
|
||||||
|
|
||||||
|
if ( my $rows = $res->rows ) {
|
||||||
|
printf( "Removed %d incomplete checkins\n", $rows );
|
||||||
|
}
|
||||||
|
|
||||||
my $unverified = $db->select(
|
my $unverified = $db->select(
|
||||||
'users',
|
'users',
|
||||||
'id, email, extract(epoch from registered_at) as registered_ts',
|
'id, email, extract(epoch from registered_at) as registered_ts',
|
||||||
|
@ -64,7 +72,7 @@ sub run {
|
||||||
printf( "Pruned unverified user %d\n", $user->{id} );
|
printf( "Pruned unverified user %d\n", $user->{id} );
|
||||||
}
|
}
|
||||||
|
|
||||||
my $res = $db->delete( 'pending_passwords',
|
$res = $db->delete( 'pending_passwords',
|
||||||
{ requested_at => { '<', $verification_deadline } } );
|
{ requested_at => { '<', $verification_deadline } } );
|
||||||
|
|
||||||
if ( my $rows = $res->rows ) {
|
if ( my $rows = $res->rows ) {
|
||||||
|
|
Loading…
Reference in a new issue