Example #1
0
 def runTransaction(self, attr, set_committing, *args, **kw):
     self.beginTransaction()
     max_db_retries = self.max_db_retries
     result = None
     conflict_exception = None
     for n_try in range(min(1, max_db_retries + 1)):
         try:
             old_site = getSite()
             setSite(self.schooltool_app)
             callable = getattr(self.remote_task, attr)
             result = callable(*args, **kw)
             setSite(old_site)
             if set_committing:
                 try:
                     status = TaskWriteState(self.request.id)
                     status.set_committing()
                 except Exception:
                     pass  # don't care really
         except ConflictError, conflict:
             # Transaction conflict, let's repeat
             conflict_exception = conflict
         except Exception:
             failure = FormattedTraceback()
             try:
                 self.abortTransaction()
             except Exception:
                 failure.append(FormattedTraceback())
             raise failure
Example #2
0
 def __init__(self, task_id):
     if task_id is None:
         self.task_state = None
     else:
         self.task_state = TaskWriteState(task_id)
     Timer.__init__(self)