watchd: delete proxies immediately on max_fail instead of marking stale
This commit is contained in:
@@ -1648,9 +1648,20 @@ class Proxywatchd():
|
||||
for job in self.collected
|
||||
if job.failcount == 0 and job.exit_ip]
|
||||
|
||||
# Separate dead proxies for deletion
|
||||
dead_proxies = [a[-1] for a in args if a[0] == DEAD_PROXY or a[0] >= max_fail]
|
||||
live_args = [a for a in args if a[0] != DEAD_PROXY and a[0] < max_fail]
|
||||
|
||||
with self._db_context() as db:
|
||||
query = 'UPDATE proxylist SET failed=?,tested=?,dronebl=?,country=?,proto=?,success_count=?,total_duration=?,mitm=?,consecutive_success=?,asn=?,protos_working=?,last_check=?,last_target=? WHERE proxy=?'
|
||||
db.executemany(query, args)
|
||||
if live_args:
|
||||
db.executemany(query, live_args)
|
||||
|
||||
# Delete proxies that reached max_fail
|
||||
if dead_proxies:
|
||||
db.executemany('DELETE FROM proxylist WHERE proxy=?',
|
||||
[(p,) for p in dead_proxies])
|
||||
_log('deleted %d dead proxies' % len(dead_proxies), 'watchd')
|
||||
|
||||
# Batch update latency metrics for successful proxies
|
||||
if latency_updates:
|
||||
|
||||
Reference in New Issue
Block a user