def __init__(self, start_id, conns=2, skip_timeout=120):
Thread.__init__(self)
self.m = pycurl.CurlMulti()
self.handles = [self._create_handle() for i in range(conns)]
self.free_handles = list(self.handles)
self.last_request = None
self.skip_ahead = False
self.skip_timeout = skip_timeout
self.dl_deltas = deque(maxlen=10)
self.req_time = deque(maxlen=20)
self.queue_time = deque(maxlen=20)
self.peek_time = deque(maxlen=20)
self.req_delay_time = deque(maxlen=20)
self.stat_thread = Thread(target=self.calc_stat)
self.dps = deque(maxlen=60)
self.delta_lock = Lock()
self.delta_count = 0
# queue for requests so we can ensure a delay between each request
# use a list instead of an actual queue to be able to choose min ID
self.req_queue = []
self.req_queue_lock = Lock()
# requests by order
self.requests = []
self.requests_lock = Lock()
self.res_queue = Queue(maxsize=RES_QUEUE_MAXSIZE)
self.evt_stop = Event()
self.add_request(start_id)
评论列表
文章目录