def get(self): """ 任务导出功能,相当于发布一个任务到celery """ task_uuid = self.get_argument("task_uuid", None) rule_type = self.get_argument("rule_type", None) job_info = self.mongo_client.get_collection("job").find_one({"id": task_uuid}) if not job_info: raise APIError(u"任务没有查询到", 30060) if job_info["status"] != "1": raise APIError(u"任务状态异常", 30061) taskname = "task_exports.export" kwargs = { "task_uuid": task_uuid, "file_id": task_uuid } result = self.celery.send_task(taskname, kwargs=kwargs) response = {'task-id': result.task_id} if backend_configured(result): response.update(state=result.state) response.update({ "errcode": 80052, "message": u"任务发布成功", "task_uuid": task_uuid }) return response
def post(self): """ 任务发布功能,发布任务到celery队列 """ ipaddress = self.get_argument("ipaddress", None) # ipaddress = checkFormat("verifyIp", self.get_argument("ipaddress")) port = self.get_argument("port", None) objname = self.get_argument("objname", None) startdate = self.get_argument("startdate", None) stopdate = self.get_argument("stopdate", None) rule_type = self.get_argument("rule_type", None) oracle_date = self.get_argument("oracle_date", None) if not port or not objname: raise APIError(u"信息不正确", 30057) key = ipaddress + ":" + port if key not in self.oracle_account.keys() and key not in self.mysql_account.keys(): raise APIError(u"ip地址还没有登记", 30059) kwargs = { "username": objname, "rule_type": rule_type.upper(), "db_server": ipaddress, "db_port": port, "task_ip": ipaddress, "task_port": port } taskname = "task_other.analysis" if port == "1521": kwargs.update({ "db_type": "O", "capture_date":oracle_date, "hostname": ipaddress, "startdate": startdate, "stopdate": stopdate, "sid": self.oracle_account[key][0], "create_user": self.oracle_account[key][1], }) # kwargs = {} options = {} # 指定队列名称,否则会导致任务不能执行 result = self.celery.send_task(taskname, kwargs=kwargs, queue="sqlreview_analysis") response = {'task-id': result.task_id} if backend_configured(result): response.update(state=result.state) response.update({"errcode": 80058, "message": u"任务发送成功"}) return response else: startdate = " ".join([startdate, "00:00:00"]) stopdate = " ".join([stopdate, "23:59:00"]) kwargs.update({ "db_type": "mysql", "startdate": startdate, "stopdate": stopdate, "hostname_max": key, "sid": self.mysql_account[key][0], "create_user": self.mysql_account[key][1], }) print kwargs result = self.celery.send_task(taskname, kwargs=kwargs, queue="sqlreview_analysis") response = {'task-id': result.task_id} if backend_configured(result): response.update(state=result.state) response.update({"errcode": 80058, "message": u"任务发布成功"}) return response