Francois Gouget : testbot: Filter the jobs in GetStatistics().

Alexandre Julliard julliard at winehq.org
Thu Apr 14 16:39:55 CDT 2022


Module: tools
Branch: master
Commit: 8f4e6c03f9aae9312d18ce0347995442946fc355
URL:    https://source.winehq.org/git/tools.git/?a=commit;h=8f4e6c03f9aae9312d18ce0347995442946fc355

Author: Francois Gouget <fgouget at codeweavers.com>
Date:   Thu Apr 14 16:57:57 2022 +0200

testbot: Filter the jobs in GetStatistics().

This reduces the number of Tasks that need to be loaded from the
database and processed in order to collect the statistics for short
periods of time.

Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 testbot/lib/WineTestBot/Activity.pm | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/testbot/lib/WineTestBot/Activity.pm b/testbot/lib/WineTestBot/Activity.pm
index f757905..d395a12 100644
--- a/testbot/lib/WineTestBot/Activity.pm
+++ b/testbot/lib/WineTestBot/Activity.pm
@@ -31,6 +31,8 @@ our @EXPORT = qw(GetActivity GetStatistics);
 use List::Util qw(max);
 use Scalar::Util qw(weaken);
 
+use ObjectModel::Collection;
+
 use WineTestBot::Config;
 use WineTestBot::Jobs;
 use WineTestBot::RecordGroups;
@@ -342,9 +344,12 @@ sub GetStatistics($;$)
 
   my ($GlobalStats, $HostsStats, $VMsStats) = ({}, {}, {});
 
-  my @JobTimes;
   my $Jobs = CreateJobs();
   my $Cutoff = $Seconds ? (time() - $Seconds) : 0;
+  $Jobs->AddFilter(FilterOr(FilterNull("Ended"),
+                            FilterValue("Ended", ">=", [$Cutoff])));
+
+  my @JobTimes;
   foreach my $Job (@{$Jobs->GetItems()})
   {
     my $CountsAsNew = ($Job->Submitted >= $Cutoff);
@@ -372,6 +377,7 @@ sub GetStatistics($;$)
           $GlobalStats->{"newtasks.count"}++;
           $HostStats->{"newtasks.count"}++ if ($HostStats);
         }
+        # The Task may have ended much earlier than the Job
         next if (!$Task->Ended or $Task->Ended < $Cutoff);
         $GlobalStats->{"donetasks.count"}++;
         $HostStats->{"donetasks.count"}++ if ($HostStats);




More information about the wine-cvs mailing list