HCE Project Python language Distributed Tasks Manager Application, Distributed Crawler Application and client API bindings.  2.0.0-chaika
Hierarchical Cluster Engine Python language binding
dc_db.ProxyStatusTask.ProxyStatusTask Class Reference
Inheritance diagram for dc_db.ProxyStatusTask.ProxyStatusTask:
Collaboration diagram for dc_db.ProxyStatusTask.ProxyStatusTask:

Public Member Functions

def __init__ (self)
 
def process (self, proxyStatuses, queryCallback)
 
def fetchProxy (self, localProxy, queryCallback)
 
- Public Member Functions inherited from dc_db.BaseTask.BaseTask
def isSiteExist (self, siteId, queryCallback, userId=None)
 
def generateCriterionSQL (self, criterions, additionWhere=None, siteId=None)
 
def fetchByCriterions (self, criterions, queryCallback)
 
def dbLock (self, mutexName, queryCallback, sleepTime=1, mutexLockTTL=Constants.DEFAULT_LOCK_TTL)
 
def dbUnlock (self, mutexName, queryCallback)
 
def createUrlsInsertQuery (self, siteId, localKeys, localValues)
 
def copyUrlsToDcUrls (self, siteId, queryCallback)
 
def statisticLogUpdate (self, localObj, urlMd5, siteId, status, queryCallback, isInsert=False)
 
def calculateMd5FormUrl (self, url, urlType, useNormilize=False)
 

Static Public Member Functions

def execCriterion (proxyStatus, queryCallback, siteId, additionWhere=None)
 
- Static Public Member Functions inherited from dc_db.BaseTask.BaseTask
def readValueFromSiteProp (siteId, propName, queryCallback, urlMd5=None)
 

Detailed Description

Definition at line 24 of file ProxyStatusTask.py.

Constructor & Destructor Documentation

◆ __init__()

def dc_db.ProxyStatusTask.ProxyStatusTask.__init__ (   self)

Definition at line 28 of file ProxyStatusTask.py.

28  def __init__(self):
29  super(ProxyStatusTask, self).__init__()
30 
31 
def __init__(self)
constructor
Definition: UIDGenerator.py:19

Member Function Documentation

◆ execCriterion()

def dc_db.ProxyStatusTask.ProxyStatusTask.execCriterion (   proxyStatus,
  queryCallback,
  siteId,
  additionWhere = None 
)
static

Definition at line 67 of file ProxyStatusTask.py.

67  def execCriterion(proxyStatus, queryCallback, siteId, additionWhere=None):
68  ret = []
69  PROXY_SELECT_TEMPLATE = "SELECT * FROM `sites_proxy`"
70  criterionString = app.SQLCriterions.generateCriterionSQL(proxyStatus.criterions, additionWhere, siteId)
71  if criterionString is not None and criterionString != "":
72  query = PROXY_SELECT_TEMPLATE + criterionString
73  res = queryCallback(query, Constants.PRIMARY_DB_ID, Constants.EXEC_NAME)
74  if isinstance(res, collections.Iterable):
75  ret = res
76 
77  return ret
78 
79 
def generateCriterionSQL(criterions, additionWhere=None, siteId=None)
Here is the call graph for this function:

◆ fetchProxy()

def dc_db.ProxyStatusTask.ProxyStatusTask.fetchProxy (   self,
  localProxy,
  queryCallback 
)

Definition at line 84 of file ProxyStatusTask.py.

84  def fetchProxy(self, localProxy, queryCallback):
85  ret = None
86  if localProxy.siteId is not None and localProxy.host is not None:
87  try:
88  PROXY_FETCH_TEMPLATE = "SELECT * FROM `sites_proxy` WHERE `Site_Id` = '%s' AND `Host` = '%s'"
89  query = PROXY_FETCH_TEMPLATE % (localProxy.siteId, localProxy.host)
90  res = queryCallback(query, Constants.PRIMARY_DB_ID, Constants.EXEC_NAME)
91 
92  if isinstance(res, collections.Iterable) and len(res) > 0:
93  ret = dc.EventObjects.Proxy(res[0]["Site_Id"], res[0]["Host"])
94  ret.id = res[0]["Id"]
95  ret.domains = res[0]["Domains"]
96  ret.priority = res[0]["Priority"]
97  ret.state = res[0]["State"]
98  ret.countryCode = res[0]["CountryCode"]
99  ret.countryName = res[0]["CountryName"]
100  ret.regionCode = res[0]["RegionCode"]
101  ret.regionName = res[0]["RegionName"]
102  ret.cityName = res[0]["CityName"]
103  ret.zipCode = res[0]["ZipCode"]
104  ret.timeZone = res[0]["TimeZone"]
105  ret.latitude = res[0]["Latitude"]
106  ret.longitude = res[0]["Longitude"]
107  ret.metroCode = res[0]["MetroCode"]
108  ret.faults = res[0]["Faults"]
109  ret.faultsMax = res[0]["FaultsMax"]
110  ret.categoryId = res[0]["Category_Id"]
111  ret.limits = res[0]["Limits"]
112  ret.description = res[0]["Description"]
113  ret.cDate = res[0]["CDate"]
114  ret.uDate = res[0]["UDate"]
115  except Exception as excp:
116  logger.debug(">>> ProxyStatusTask.fetchProxy some exception = " + str(excp))
117  return ret
Here is the caller graph for this function:

◆ process()

def dc_db.ProxyStatusTask.ProxyStatusTask.process (   self,
  proxyStatuses,
  queryCallback 
)

Definition at line 37 of file ProxyStatusTask.py.

37  def process(self, proxyStatuses, queryCallback):
38  proxies = []
39  for proxyStatus in proxyStatuses:
40  localProxyStatuses = []
41  if proxyStatus.siteId is None or proxyStatus.host is None and proxyStatus.criterions is not None:
42  result = ProxyStatusTask.execCriterion(proxyStatus, queryCallback, proxyStatus.siteId)
43  for elem in result:
44  localProxy = copy.deepcopy(proxyStatus)
45  # if localProxy.siteId is None:
46  localProxy.siteId = elem["Site_Id"]
47  # if localProxy.host is None:
48  localProxy.host = elem["Host"]
49  localProxyStatuses.append(localProxy)
50  else:
51  localProxyStatuses.append(proxyStatus)
52  logger.debug(">>> len(localProxyStatuses) = " + str(len(localProxyStatuses)))
53  for localProxy in localProxyStatuses:
54  proxy = self.fetchProxy(localProxy, queryCallback)
55  if proxy is not None:
56  proxies.append(proxy)
57  return proxies
58 
59 
Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following file: