diff options
| author | levinse <levinse> | 2011-06-22 18:32:21 +0000 | 
|---|---|---|
| committer | levinse <levinse> | 2011-06-22 18:32:21 +0000 | 
| commit | c1c47a765702a1e1dad680f603d25aa04eeb5269 (patch) | |
| tree | 73e75b7db71a16a5b19475dec522f65fd04bf7e2 /bin | |
| parent | 8a20ba243bbcf659376037dbce3a05c0d7378e1c (diff) | |
improve performance of DID provisioning status report, RT10988
Diffstat (limited to 'bin')
| -rwxr-xr-x | bin/set-lata-have_usage | 81 | 
1 files changed, 5 insertions, 76 deletions
diff --git a/bin/set-lata-have_usage b/bin/set-lata-have_usage index 1efa42038..82334dfa8 100755 --- a/bin/set-lata-have_usage +++ b/bin/set-lata-have_usage @@ -1,81 +1,10 @@ -#!/usr/bin/perl +#!/usr/bin/perl -w  use strict; -use warnings;  use FS::UID qw(adminsuidsetup); -use FS::Record qw(qsearch qsearchs dbh); -use FS::lata; -use FS::phone_avail; -use FS::svc_phone; -use Data::Dumper; +use FS::Cron::set_lata_have_usage qw(set_lata_have_usage); +use FS::Conf; -print "started time=".time."\n"; - -my $user = shift; +my $user = shift or die "set-lata-have_usage username";  adminsuidsetup $user; -local $SIG{HUP} = 'IGNORE'; -local $SIG{INT} = 'IGNORE'; -local $SIG{QUIT} = 'IGNORE'; -local $SIG{TERM} = 'IGNORE'; -local $SIG{TSTP} = 'IGNORE'; -local $SIG{PIPE} = 'IGNORE'; - -my $oldAutoCommit = $FS::UID::AutoCommit; -local $FS::UID::AutoCommit = 0; -my $dbh = dbh; - -my %latas = map { $_->latanum => $_ } qsearch('lata', {}); - -foreach my $lata ( keys %latas ) { -        next unless $latas{$lata}->have_usage > 0; -        $latas{$lata}->have_usage(0); -        my $error = $latas{$lata}->replace; -        if ( $error ) { -            $dbh->rollback if $oldAutoCommit; -            die "error replacing LATA $lata: $error"; -        } -} -print "cleared have_usage for all LATAs time=".time."\n"; - -my @dids = qsearch({     'table'     => 'svc_phone', -                                'hashref'   =>  -                                    { 'latanum' => -                                        { 'op'      => '>', -                                          'value'   => '0', -                                        }, -                                    }, -                                'addl_from' => 'join phone_avail using (svcnum)', -                                  }); -print "DID query finished time=".time."\n"; - -my $count = 0; -foreach my $did ( @dids ) { -    print "count=$count time=".time."\n" if $count % 1000 == 0; -    my @cdrs = $did->get_cdrs; -    my $lata = $latas{$did->latanum}; -    $count++; -    if ( scalar(@cdrs) ) { -        if ( !$lata->have_usage ) { -            $lata->have_usage(1); -        } -        else { -            $lata->have_usage($lata->have_usage+1); -        } -    } -} - -print "Set have_usage finished time=".time."\n"; - -foreach my $lata ( keys %latas ) { -    if ( $latas{$lata}->modified ) { -        print "$lata ".$latas{$lata}->have_usage."\n"; -        my $error = $latas{$lata}->replace; -        if ( $error ) { -            $dbh->rollback if $oldAutoCommit; -            die "error replacing LATA $lata: $error"; -        } -    } -} - -$dbh->commit or die $dbh->errstr if $oldAutoCommit; -print "done time=".time."\n"; +set_lata_have_usage('v' => 1);  | 
