def run(self, params): log.info("Getting context info...") return { "job_id": get_current_job().id, "worker_id": get_current_worker().id, "config": get_current_config() }
def run(self, params): self.job = get_current_job() if params.get("imap"): return subpool_map(params["pool_size"], self.inner, params["inner_params"]) else: return list(subpool_imap(params["pool_size"], self.inner, params["inner_params"]))
def build_query(self): query = {} current_job = get_current_job() if self.params.get("id"): query["_id"] = ObjectId(self.params.get("id")) # TODO use redis for queue for k in [ "queue", "status", "worker", "path", "dateretry", "exceptiontype" ]: if self.params.get(k): if isinstance(self.params[k], (list, tuple)): query[k] = {"$in": list(self.params[k])} elif k == "queue" and self.params[k][-1] == "/": query[k] = {"$regex": "^%s" % self.params[k]} else: query[k] = self.params[k] if query.get("worker"): query["worker"] = ObjectId(query["worker"]) if self.params.get("params"): params_dict = json.loads(self.params.get("params")) # pylint: disable=no-member for key in params_dict: query["params.%s" % key] = params_dict[key] if current_job and "_id" not in query: query["_id"] = {"$lte": current_job.id} return query
def run(self, params): from mrq.context import _GLOBAL_CONTEXT return { "current_job_id": str(get_current_job().id), "job_ids": [str(job[1].id) for job in _GLOBAL_CONTEXT["greenlets"].values()] }
def inner(self, x): assert get_current_job() == self.job if x == "import-large-file": from mrq.basetasks.tests.largefile import a assert a == 1 return True if x == "exception": raise Exception(x) sleep(x) return x
def inner(self, x): if self.job: assert get_current_job() == self.job if x == "import-large-file": from tests.tasks.largefile import a assert a == 1 return True if x == "exception": raise Exception(x) time.sleep(x) return x
def kill_machine(sid): sid_info = db['sid_info'].find_one({'sid': sid}, {'job_id': 1}) if not sid_info: return False # print sid job = get_current_job() # print job # print 'sid_info:'+str(sid_info.get('job_id')) # print job.id if job.exists() and str(job.id) == str(sid_info.get('job_id')): return True else: # print 'machine_job:'+str(job.id)+'将被终止!' return False
def run(self, params): self.job = get_current_job() return subpool_map(params["pool_size"], self.inner, params["inner_params"])