[freeside-commits] branch master updated. 73641bbccaf310777a01dcfc17d7f60e2757e73a
Ivan
ivan at 420.am
Sat Jul 26 15:19:13 PDT 2014
The branch, master has been updated
via 73641bbccaf310777a01dcfc17d7f60e2757e73a (commit)
via 7caec8842cb8959515204b45aef368f243e87e33 (commit)
via 02bf58c3c5db507d4652d24b1788208ca6c4d759 (commit)
from c742495b5cd4a044397a0edce8c66a1a12c5db55 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 73641bbccaf310777a01dcfc17d7f60e2757e73a
Merge: 7caec88 c742495
Author: Ivan Kohler <ivan at freeside.biz>
Date: Sat Jul 26 15:19:06 2014 -0700
Merge branch 'master' of git.freeside.biz:/home/git/freeside
commit 7caec8842cb8959515204b45aef368f243e87e33
Author: Ivan Kohler <ivan at freeside.biz>
Date: Sat Jul 26 15:18:33 2014 -0700
queue statistics, RT#30238
diff --git a/FS/FS.pm b/FS/FS.pm
index 67e1272..d6b68c2 100644
--- a/FS/FS.pm
+++ b/FS/FS.pm
@@ -472,6 +472,8 @@ L<FS::queue_arg> - Job arguments
L<FS::queue_depend> - Job dependencies
+L<FS::queue_stat> - Job statistics
+
L<FS::msg_template> - Message templates (customer notices)
L<FS::msgcat> - Message catalogs (error messages)
diff --git a/FS/FS/queue_stat.pm b/FS/FS/queue_stat.pm
new file mode 100644
index 0000000..c8e7791
--- /dev/null
+++ b/FS/FS/queue_stat.pm
@@ -0,0 +1,129 @@
+package FS::queue_stat;
+use base qw( FS::Record );
+
+use strict;
+#use FS::Record qw( qsearch qsearchs );
+
+=head1 NAME
+
+FS::queue_stat - Object methods for queue_stat records
+
+=head1 SYNOPSIS
+
+ use FS::queue_stat;
+
+ $record = new FS::queue_stat \%hash;
+ $record = new FS::queue_stat { 'column' => 'value' };
+
+ $error = $record->insert;
+
+ $error = $new_record->replace($old_record);
+
+ $error = $record->delete;
+
+ $error = $record->check;
+
+=head1 DESCRIPTION
+
+An FS::queue_stat object represents statistcs about a completed (queued) job.
+FS::queue_stat inherits from FS::Record. The following fields are currently
+supported:
+
+=over 4
+
+=item statnum
+
+primary key
+
+=item jobnum
+
+jobnum
+
+=item job
+
+job
+
+=item custnum
+
+custnum
+
+=item insert_date
+
+insert_date
+
+=item start_date
+
+start_date
+
+=item end_date
+
+end_date
+
+=back
+
+=head1 METHODS
+
+=over 4
+
+=item new HASHREF
+
+Creates a new record. To add the record to the database, see L<"insert">.
+
+Note that this stores the hash reference, not a distinct copy of the hash it
+points to. You can ask the object for a copy with the I<hash> method.
+
+=cut
+
+sub table { 'queue_stat'; }
+
+=item insert
+
+Adds this record to the database. If there is an error, returns the error,
+otherwise returns false.
+
+=item delete
+
+Delete this record from the database.
+
+=item replace OLD_RECORD
+
+Replaces the OLD_RECORD with this one in the database. If there is an error,
+returns the error, otherwise returns false.
+
+=item check
+
+Checks all fields to make sure this is a valid record. If there is
+an error, returns the error, otherwise returns false. Called by the insert
+and replace methods.
+
+=cut
+
+sub check {
+ my $self = shift;
+
+ my $error =
+ $self->ut_numbern('statnum')
+ || $self->ut_number('jobnum')
+ || $self->ut_text('job')
+ || $self->ut_numbern('custnum')
+ || $self->ut_number('insert_date')
+ || $self->ut_number('start_date')
+ || $self->ut_number('end_date')
+ ;
+ return $error if $error;
+
+ $self->SUPER::check;
+}
+
+=back
+
+=head1 BUGS
+
+=head1 SEE ALSO
+
+L<FS::Record>
+
+=cut
+
+1;
+
diff --git a/FS/MANIFEST b/FS/MANIFEST
index ef9fb44..693904d 100644
--- a/FS/MANIFEST
+++ b/FS/MANIFEST
@@ -810,3 +810,5 @@ FS/state.pm
t/state.t
FS/state.pm
t/state.t
+FS/queue_stat.pm
+t/queue_stat.t
diff --git a/FS/bin/freeside-queued b/FS/bin/freeside-queued
index f1a87ca..70d8534 100644
--- a/FS/bin/freeside-queued
+++ b/FS/bin/freeside-queued
@@ -11,6 +11,7 @@ use FS::Conf;
use FS::Record qw(qsearch);
use FS::queue;
use FS::queue_depend;
+use FS::queue_stat;
use FS::Log;
use FS::Cron::expire_user_pref qw( expire_user_pref );
@@ -140,6 +141,8 @@ while (1) {
foreach my $job ( @jobs ) {
+ my $start_date = time;
+
$log->debug('locking queue job', object => $job);
my %hash = $job->hash;
@@ -236,6 +239,20 @@ while (1) {
dbh->commit; # for the job itself
}
+ if ( $ljob->job eq 'FS::cust_main::queued_bill' ) {
+ my $queue_stat = new FS::queue_stat {
+ 'jobnum' => $ljob->jobnum,
+ 'job' => $ljob->job,
+ 'custnum' => $ljob->custnum,
+ 'insert_date' => $ljob->_date,
+ 'start_date' => $start_date,
+ 'end_date' => time,
+ };
+ my $error = $queue_stat->insert;
+ die $error if $error;
+ dbh->commit; #for the stat
+ }
+
if ( UNIVERSAL::can(dbh, 'sprintProfile') ) {
open(PROFILE,">%%%FREESIDE_LOG%%%/queueprofile.$$.".time)
or die "can't open profile file: $!";
diff --git a/FS/t/queue_stat.t b/FS/t/queue_stat.t
new file mode 100644
index 0000000..7ba0cfe
--- /dev/null
+++ b/FS/t/queue_stat.t
@@ -0,0 +1,5 @@
+BEGIN { $| = 1; print "1..1\n" }
+END {print "not ok 1\n" unless $loaded;}
+use FS::queue_stat;
+$loaded=1;
+print "ok 1\n";
commit 02bf58c3c5db507d4652d24b1788208ca6c4d759
Author: Ivan Kohler <ivan at freeside.biz>
Date: Sat Jul 26 14:48:08 2014 -0700
queue statistics, RT#30238
diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm
index 40248dd..6486eed 100644
--- a/FS/FS/Schema.pm
+++ b/FS/FS/Schema.pm
@@ -200,7 +200,7 @@ sub dbdef_dist {
grep { ! /^(clientapi|access_user)_session/
&& ! /^h_/
&& ! /^log(_context)?$/
- && ( ! /^queue(_arg)?$/ || ! $opt->{'queue-no_history'} )
+ && ( ! /^queue(_arg|_depend|_stat)?$/ || ! $opt->{'queue-no_history'} )
&& ! $tables_hashref_torrus->{$_}
}
$dbdef->tables
@@ -4175,6 +4175,21 @@ sub tables_hashref {
],
},
+ 'queue_stat' => {
+ 'columns' => [
+ 'statnum', 'bigserial', '', '', '', '',
+ 'jobnum', 'bigint', '', '', '', '',
+ 'job', 'varchar', '', 512, '', '',
+ 'custnum', 'int', 'NULL', '', '', '',
+ 'insert_date', @date_type, '', '',
+ 'start_date', @date_type, '', '',
+ 'end_date', @date_type, '', '',
+ ],
+ 'primary_key' => 'statnum',
+ 'unique' => [], #[ ['jobnum'] ],
+ 'index' => [],
+ },
+
'export_svc' => {
'columns' => [
'exportsvcnum' => 'serial', '', '', '', '',
-----------------------------------------------------------------------
Summary of changes:
FS/FS.pm | 2 +
FS/FS/Schema.pm | 17 ++++++++-
FS/FS/{extension_device.pm => queue_stat.pm} | 53 +++++++++++++++++---------
FS/MANIFEST | 2 +
FS/bin/freeside-queued | 17 +++++++++
FS/t/{ConfItem.t => queue_stat.t} | 2 +-
6 files changed, 74 insertions(+), 19 deletions(-)
copy FS/FS/{extension_device.pm => queue_stat.pm} (61%)
copy FS/t/{ConfItem.t => queue_stat.t} (83%)
More information about the freeside-commits
mailing list