|
@@ -20,7 +20,7 @@ import requests
|
|
import setting as settings
|
|
import setting as settings
|
|
from base_server import BaseServer, tools
|
|
from base_server import BaseServer, tools
|
|
from common.log import logger
|
|
from common.log import logger
|
|
-from common.redis_lock import acquire_lock_with_timeout, release_lock
|
|
|
|
|
|
+from common.redis_lock import OptimisticLock
|
|
|
|
|
|
DEFAULT_UA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36'
|
|
DEFAULT_UA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36'
|
|
|
|
|
|
@@ -288,8 +288,7 @@ class ProxyPoolClient(BaseProxyPool):
|
|
]
|
|
]
|
|
|
|
|
|
def proxies(self, **kwargs):
|
|
def proxies(self, **kwargs):
|
|
- lock = acquire_lock_with_timeout(self.redis_db, self.lock_label)
|
|
|
|
- if lock:
|
|
|
|
|
|
+ with OptimisticLock(self.redis_db, self.lock_label):
|
|
proxy = {}
|
|
proxy = {}
|
|
if self.proxy_total > 0:
|
|
if self.proxy_total > 0:
|
|
proxy_lst = self.get_all_proxy(**kwargs)
|
|
proxy_lst = self.get_all_proxy(**kwargs)
|
|
@@ -298,5 +297,4 @@ class ProxyPoolClient(BaseProxyPool):
|
|
self.redis_db.hset(name, 'usage', proxy['usage'] + 1)
|
|
self.redis_db.hset(name, 'usage', proxy['usage'] + 1)
|
|
self.redis_db.hset(name, 'last_time', tools.now_ts())
|
|
self.redis_db.hset(name, 'last_time', tools.now_ts())
|
|
|
|
|
|
- release_lock(self.redis_db, self.lock_label, lock)
|
|
|
|
return proxy.get('proxies')
|
|
return proxy.get('proxies')
|