Ejemplo n.º 1
0
 def execute_task_on_worker(self, worker, task):
     try:
         message = simplejson.dumps(task.as_descriptor(),
                                    cls=SWReferenceJSONEncoder)
         post_string_noreturn(
             "http://%s/control/task/" % (worker.netloc),
             message,
             result_callback=self.worker_post_result_callback)
     except:
         self.worker_failed(worker)
Ejemplo n.º 2
0
 def abort_task_on_worker(self, task, worker):
     try:
         ciel.log("Aborting task %s on worker %s" % (task.task_id, worker),
                  "WORKER_POOL", logging.WARNING)
         post_string_noreturn(
             'http://%s/control/abort/%s/%s' %
             (worker.netloc, task.job.id, task.task_id),
             "",
             result_callback=self.worker_post_result_callback)
     except:
         self.worker_failed(worker)
Ejemplo n.º 3
0
 def backoff_request(self,
                     url,
                     method,
                     payload=None,
                     num_attempts=1,
                     initial_wait=0,
                     need_result=True):
     initial_wait = 5
     for _ in range(0, num_attempts):
         if self.stop_event.is_set():
             break
         try:
             try:
                 if method == "POST":
                     if need_result or num_attempts > 1:
                         content = post_string(url, payload)
                     else:
                         post_string_noreturn(url,
                                              payload,
                                              result_callback=self.
                                              master_post_result_callback)
                         return
                 elif method == "GET":
                     content = get_string(url)
                 else:
                     raise Exception("Invalid method %s" % method)
                 return 200, content
             except Exception as e:
                 ciel.log(
                     "Backoff-request failed with exception %s; re-raising MasterNotResponding"
                     % e, "MASTER_PROXY", logging.ERROR)
                 raise MasterNotRespondingException()
         except:
             ciel.log.error("Error contacting master", "MSTRPRXY",
                            logging.WARN, True)
         self.stop_event.wait(initial_wait)
         initial_wait += initial_wait * random.uniform(0.5, 1.5)
     ciel.log.error("Given up trying to contact master", "MSTRPRXY",
                    logging.ERROR, True)
     if self.stop_event.is_set():
         raise WorkerShutdownException()
     else:
         raise MasterNotRespondingException()
Ejemplo n.º 4
0
 def abort_task_on_worker(self, task, worker):
     try:
         ciel.log("Aborting task %s on worker %s" % (task.task_id, worker), "WORKER_POOL", logging.WARNING)
         post_string_noreturn('http://%s/control/abort/%s/%s' % (worker.netloc, task.job.id, task.task_id), "", result_callback=self.worker_post_result_callback)
     except:
         self.worker_failed(worker)
Ejemplo n.º 5
0
 def execute_task_on_worker(self, worker, task):
     try:
         message = simplejson.dumps(task.as_descriptor(), cls=SWReferenceJSONEncoder)
         post_string_noreturn("http://%s/control/task/" % (worker.netloc), message, result_callback=self.worker_post_result_callback)
     except:
         self.worker_failed(worker)