def start_worker(self, job_id): """ Spawn a worker process to executed the job identified by job_id. @type job_id: String @param job_id: The ID of the job to be executed @rtype: Dictionary @return: Dictionary with details related to the worker """ worker = {} worker["id"] = self.generate_id() syslog.syslog(syslog.LOG_INFO, "initializing worker %s ..." % worker["id"]) worker["pid"] = None worker["c_queue"] = multiprocessing.Queue() worker["p_queue"] = multiprocessing.Queue() worker["instance"] = jobworker(self.id, worker["id"], job_id, worker["c_queue"], worker["p_queue"], self.root, self.config) worker["process"] = Process(target=worker["instance"].run) worker["last_report"] = time.time() worker["process"].start() self.workers.append(worker) return worker
job_data = self.database.loadJob(job_id) if not job_data: self.database.log("error", "failed to load data for job %s" % job_id, str(ex)) except Exception, ex: self.database.log("error", "error loading data for job %s" % job_id, str(ex)) return False try: worker["instance"] = jobworker(self.id, worker["id"], job_id, worker["c_queue"], worker["p_queue"], self.root, self.config, job_data) except Exception, ex: self.database.log("error", "failed to initialize worker for job %s" %\ job_id, str(ex)) return False try: worker["process"] = Process(target=worker["instance"].run) worker["process"].start() except Exception, ex: self.database.log("error",
try: job_data = self.database.loadJob(job_id) if not job_data: self.database.log("error", "failed to load data for job %s" % job_id, str(ex)) except Exception, ex: self.database.log("error", "error loading data for job %s" % job_id, str(ex)) return False try: worker["instance"] = jobworker(self.id, worker["id"], job_id, worker["c_queue"], worker["p_queue"], self.root, self.config, job_data) except Exception, ex: self.database.log("error", "failed to initialize worker for job %s" %\ job_id, str(ex)) return False try: worker["process"] = Process(target=worker["instance"].run) worker["process"].start() except Exception, ex: self.database.log("error", "failed to start job %s" % job_id, str(ex)) return False