Exemplo n.º 1
0
    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
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
 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
Exemplo n.º 4
0
 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
Exemplo n.º 5
0
 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
Exemplo n.º 6
0
    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