def request(self, method, host, path, headers, body, url="", timeout=60): if self.task_count > self.config.max_task_num: self.logger.warn("task num exceed") time.sleep(1) return None with self.task_count_lock: self.task_count += 1 try: # self.logger.debug("task start request") if not url: url = "%s %s%s" % (method, host, path) self.last_request_time = time.time() q = simple_queue.Queue() task = http_common.Task(self.logger, self.config, method, host, path, headers, body, q, url, timeout) task.set_state("start_request") self.request_queue.put(task) response = q.get(timeout=timeout) if response and response.status == 200: self.success_num += 1 self.continue_fail_num = 0 else: self.logger.warn("task %s %s %s timeout", method, host, path) self.fail_num += 1 self.continue_fail_num += 1 self.last_fail_time = time.time() task.set_state("get_response") return response finally: with self.task_count_lock: self.task_count -= 1
def request(self, headers, body, url, timeout): # xlog.debug("task start request") self.last_request_time = time.time() q = Queue.Queue() task = http_common.Task(headers, body, q, url, timeout) task.set_state("start_request") self.request_queue.put(task) response = q.get(True) task.set_state("get_response") return response
def request(self, headers, body, url): # xlog.debug("task start request") self.last_request_time = time.time() q = Queue.Queue() task = http_common.Task(headers, body, q, url) task.set_state("start_request") self.request_queue.put(task) self.working_tasks[task.unique_id] = task response = q.get(True) task.set_state("get_response") del self.working_tasks[task.unique_id] return response
def request(self, method, host, path, headers, body, url="", timeout=60): # xlog.debug("task start request") if not url: url = "%s %s%s" % (method, host, path) self.last_request_time = time.time() q = Queue.Queue() task = http_common.Task(method, host, path, headers, body, q, url, timeout) task.set_state("start_request") self.request_queue.put(task) self.working_tasks[task.unique_id] = task response = q.get(True) task.set_state("get_response") del self.working_tasks[task.unique_id] return response
def request(self, headers, body, url): # xlog.debug("task start request") self.last_request_time = time.time() q = Queue.Queue() task = http_common.Task(headers, body, q, url) unique_id = task.unique_id task.set_state("start_request") self.request_queue.put(task) self.working_tasks[task.unique_id] = task response = q.get(True) task.set_state("get_response") try: del self.working_tasks[task.unique_id] except Exception as e: xlog.error("http_dispatcher request unique_id %s, %s not found.", unique_id, task.unique_id) return response
def request(self, method, host, path, headers, body, url="", timeout=60): # self.logger.debug("task start request") if not url: url = "%s %s%s" % (method, host, path) self.last_request_time = time.time() q = simple_queue.Queue() task = http_common.Task(self.logger, self.config, method, host, path, headers, body, q, url, timeout) task.set_state("start_request") self.request_queue.put(task) response = q.get(timeout=timeout) if response and response.status==200: self.success_num += 1 self.continue_fail_num = 0 else: self.fail_num += 1 self.continue_fail_num += 1 self.last_fail_time = time.time() task.set_state("get_response") return response