def _check_worker():
global _checking_lock, _checking_num, network_stat, last_check_time
time_now = time.time()
if config.PROXY_ENABLE:
socket.socket = socks.socksocket
xlog.debug("patch socks")
_checking_lock.acquire()
_checking_num += 1
_checking_lock.release()
try:
conn = httplib.HTTPSConnection("github.com", 443, timeout=30)
header = {"user-agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36",
"accept":"application/json, text/javascript, */*; q=0.01",
"accept-encoding":"gzip, deflate, sdch",
"accept-language":'en-US,en;q=0.8,ja;q=0.6,zh-CN;q=0.4,zh;q=0.2',
"connection":"keep-alive"
}
conn.request("HEAD", "/", headers=header)
response = conn.getresponse()
if response.status:
last_check_time = time.time()
report_network_ok()
xlog.debug("network is ok, cost:%d ms", 1000*(time.time() - time_now))
return True
except Exception as e:
xlog.warn("network fail:%r", e)
network_stat = "Fail"
last_check_time = time.time()
return False
finally:
_checking_lock.acquire()
_checking_num -= 1
_checking_lock.release()
if config.PROXY_ENABLE:
socket.socket = default_socket
xlog.debug("restore socket")
评论列表
文章目录