only update end time on current task set (not all). log some basic stats after stori...
authorerickson <erickson@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Wed, 24 Feb 2010 02:41:22 +0000 (02:41 +0000)
committererickson <erickson@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Wed, 24 Feb 2010 02:41:22 +0000 (02:41 +0000)
git-svn-id: svn://svn.open-ils.org/ILS-Contrib/constrictor/trunk@794 6d9bc8c9-1ec2-4278-b937-99fde70a366f

constrictor/data.py

index 4c0435e..6af142c 100644 (file)
@@ -67,8 +67,9 @@ class Data(object):
  
 
     def create_task_set(self):
+        self.task_set_start_time = time.time()
         res = self.engine.execute(
-            self.task_set_table.insert().values(start_time = time.time())
+            self.task_set_table.insert().values(start_time = self.task_set_start_time)
         )
         #self.task_set_id = res.inserted_primary_key
         self.task_set_id = res.last_inserted_ids()[0]
@@ -76,11 +77,17 @@ class Data(object):
         
     def store_data(self):
 
+        end_time = time.time()
         log.log_info("Inserting data into data store...")
 
         # close out the task set
         self.engine.execute(
-            self.task_set_table.update().values(end_time = time.time())
+            self.task_set_table.update(
+                ).where(
+                    self.task_set_table.c.id == self.task_set_id
+                ).values(
+                    end_time = end_time
+                )
         ).close()
 
         # insert all of the task data
@@ -97,4 +104,10 @@ class Data(object):
                 )
             ).close()
 
+        # log some basic stats
+        task_set_time = end_time - self.task_set_start_time
+        log.log_info(
+            "Total time %0.3f seconds, %d total tasks, average task duration %0.3f seconds" % (
+                task_set_time, len(self.runtime_data), task_set_time / len(self.runtime_data)))
+