Skip to content

Commit 30d8297

Browse files
committed
bad uptime
1 parent b695911 commit 30d8297

File tree

4 files changed

+13
-3
lines changed

4 files changed

+13
-3
lines changed

models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ class Proxy(Base):
3232
checking_period = Column(Integer, default=settings.MIN_PROXY_CHECKING_PERIOD, nullable=False)
3333
number_of_bad_checks = Column(Integer, default=0)
3434
uptime = Column(Integer, nullable=True, default=None)
35+
bad_uptime = Column(Integer, nullable=True, default=None)
3536
# in microseconds
3637
response_time = Column(Integer, nullable=True, default=None)
3738

processor.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,8 @@ async def process_proxy(self, raw_protocol: int, auth_data: str, domain: str, po
240240
if proxy:
241241
proxy.number_of_bad_checks += 1
242242
proxy.uptime = int(time.time())
243+
if proxy.number_of_bad_checks > settings.DEAD_PROXY_THRESHOLD:
244+
proxy.bad_uptime = int(time.time())
243245

244246
if proxy.number_of_bad_checks > settings.REMOVE_ON_N_BAD_CHECKS:
245247
self.logger.debug('removing proxy {0} permanently...'.format(proxy.to_url()))
@@ -283,13 +285,17 @@ def create_or_update_proxy(raw_protocol: Proxy.PROTOCOLS, auth_data, domain, por
283285
proxy = Proxy(raw_protocol=raw_protocol, auth_data=auth_data, domain=domain, port=port)
284286
session.add(proxy)
285287

288+
if proxy.bad_proxy or proxy.uptime is None or proxy.uptime == 0:
289+
proxy.uptime = int(time.time())
290+
291+
if proxy.bad_uptime is None or proxy.bad_uptime == 0 or \
292+
proxy.number_of_bad_checks > settings.DEAD_PROXY_THRESHOLD:
293+
proxy.bad_uptime = int(time.time())
294+
286295
proxy.response_time = response_time
287296
proxy.number_of_bad_checks = 0
288297
proxy.last_check_time = int(time.time())
289298

290-
if proxy.bad_proxy or proxy.uptime is None or proxy.uptime == 0:
291-
proxy.uptime = int(time.time())
292-
293299
checking_time = int(end_checking_time - start_checking_time)
294300
if checking_time > settings.PROXY_CHECKING_TIMEOUT:
295301
checking_time = settings.PROXY_CHECKING_TIMEOUT

server/proxy_provider_server.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ async def get_proxies_html(self, request):
137137
"address": proxy.address,
138138
"response_time": proxy.response_time / 1000 if proxy.response_time is not None else None,
139139
"uptime": datetime.timedelta(seconds=int(current_timestamp - proxy.uptime)),
140+
"bad_uptime": datetime.timedelta(seconds=int(current_timestamp - proxy.bad_uptime)),
140141
"last_check_time": proxy.last_check_time,
141142
"checking_period": proxy.checking_period,
142143
"number_of_bad_checks": proxy.number_of_bad_checks,

server/templates/proxies.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<td>address</td>
77
<td>response_time</td>
88
<td>uptime</td>
9+
<td>bad_uptime</td>
910
<td>last_check_time</td>
1011
<td>checking_period</td>
1112
<td>number_of_bad_checks</td>
@@ -19,6 +20,7 @@
1920
<td>{{ proxy.address }}</td>
2021
<td>{{ proxy.response_time }} ms</td>
2122
<td>{{ proxy.uptime }}</td>
23+
<td>{{ proxy.bad_uptime }}</td>
2224
<td id="proxy_{{ loop.index }}_last_check_time">{{ proxy.last_check_time }}</td>
2325
<td>{{ proxy.checking_period }}</td>
2426
<td>{{ proxy.number_of_bad_checks }}</td>

0 commit comments

Comments
 (0)