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.URLDeleteTask.URLDeleteTask Class Reference
Inheritance diagram for dc_db.URLDeleteTask.URLDeleteTask:
Collaboration diagram for dc_db.URLDeleteTask.URLDeleteTask:

Public Member Functions

def __init__ (self, keyValueStorageDir, rawDataDir, dBDataTask)
 
def process (self, urlDeletes, queryCallback)
 
def deleteFromMysqlDB (self, urlDelete, queryCallback)
 
def copyUrlToDeleteDB (self, urlDelete, 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)
 

Public Attributes

 uRLCleanUpTask
 
 recalculator
 
 urlMd5
 

Additional Inherited Members

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

Detailed Description

Definition at line 25 of file URLDeleteTask.py.

Constructor & Destructor Documentation

◆ __init__()

def dc_db.URLDeleteTask.URLDeleteTask.__init__ (   self,
  keyValueStorageDir,
  rawDataDir,
  dBDataTask 
)

Definition at line 32 of file URLDeleteTask.py.

32  def __init__(self, keyValueStorageDir, rawDataDir, dBDataTask):
33  super(URLDeleteTask, self).__init__()
34  self.uRLCleanUpTask = URLCleanUpTask(keyValueStorageDir, rawDataDir, dBDataTask)
35  self.recalculator = FieldRecalculator()
36  self.urlMd5 = None
37  # self.dBDataTask = dBDataTask
38 
39 
def __init__(self)
constructor
Definition: UIDGenerator.py:19

Member Function Documentation

◆ copyUrlToDeleteDB()

def dc_db.URLDeleteTask.URLDeleteTask.copyUrlToDeleteDB (   self,
  urlDelete,
  queryCallback 
)

Definition at line 108 of file URLDeleteTask.py.

108  def copyUrlToDeleteDB(self, urlDelete, queryCallback):
109  if urlDelete.urlType == dc.EventObjects.URLStatus.URL_TYPE_URL:
110  localMd5 = hashlib.md5(urlDelete.url).hexdigest()
111  else:
112  localMd5 = urlDelete.url
113  SQL_COPY_QUERY_TEMPLATE = "INSERT INTO %s SELECT * FROM dc_urls.%s WHERE `URLMd5` = '%s'"
114  tbName = Constants.DC_URLS_TABLE_NAME_TEMPLATE % urlDelete.siteId
115  # TODO: One more query for each delete request is too heavy for DB
116  # query = Constants.SQL_CREATE_QUERY_TEMPLATE % (tbName, tbName)
117  # queryCallback(query, Constants.FOURTH_DB_ID)
118  query = SQL_COPY_QUERY_TEMPLATE % (tbName, tbName, localMd5)
119  queryCallback(query, Constants.FOURTH_DB_ID, Constants.EXEC_INDEX, True)
120 
Here is the caller graph for this function:

◆ deleteFromMysqlDB()

def dc_db.URLDeleteTask.URLDeleteTask.deleteFromMysqlDB (   self,
  urlDelete,
  queryCallback 
)

Definition at line 95 of file URLDeleteTask.py.

95  def deleteFromMysqlDB(self, urlDelete, queryCallback):
96  self.urlMd5 = self.calculateMd5FormUrl(urlDelete.url, urlDelete.urlType, True)
97  SQL_CLAUSE = ("`URLMd5` = '%s'" % self.urlMd5)
98  UPDATE_SQL_TEMPLATE = "DELETE FROM `%s` WHERE %s"
99  tableName = Constants.DC_URLS_TABLE_NAME_TEMPLATE % urlDelete.siteId
100  query = UPDATE_SQL_TEMPLATE % (tableName, SQL_CLAUSE)
101  queryCallback(query, Constants.SECONDARY_DB_ID)
102 
103 
Here is the call graph for this function:
Here is the caller graph for this function:

◆ process()

def dc_db.URLDeleteTask.URLDeleteTask.process (   self,
  urlDeletes,
  queryCallback 
)

Definition at line 45 of file URLDeleteTask.py.

45  def process(self, urlDeletes, queryCallback):
46  ret = GeneralResponse()
47  for urlDelete in urlDeletes:
48  if urlDelete.siteId == "":
49  urlDelete.siteId = "0"
50  if self.isSiteExist(urlDelete.siteId, queryCallback):
51  try:
52  localUrls = []
53  if urlDelete.url is None:
54  isUrlExtract = False
55  if urlDelete.urlType == dc.EventObjects.URLStatus.URL_TYPE_URL:
56  isUrlExtract = True
57  localUrls = self.uRLCleanUpTask.extractUrlByCriterions(urlDelete.siteId, isUrlExtract,
58  urlDelete.criterions, queryCallback)
59  else:
60  localUrls.append(urlDelete.url)
61  logger.debug(">>> [URLDelete] localUrls size = " + str(len(localUrls)))
62  for localUrl in localUrls:
63  try:
64  urlDelete.url = localUrl
65  if urlDelete.delayedType == dc.EventObjects.NOT_DELAYED_OPERATION:
66  self.uRLCleanUpTask.deleteFromDataStorage(urlDelete, queryCallback)
67  self.uRLCleanUpTask.deleteFromRawStorage(urlDelete)
68  elif urlDelete.delayedType == dc.EventObjects.DELAYED_OPERATION:
69  self.copyUrlToDeleteDB(urlDelete, queryCallback)
70  self.deleteFromMysqlDB(urlDelete, queryCallback)
71  AttrDeleteTask.deleteUrlsAttributes(urlDelete.siteId, self.urlMd5, queryCallback)
72  if self.urlMd5 is not None:
73  StatisticLogManager.statisticUpdate(queryCallback, Constants.StatFreqConstants.FREQ_DELETE, 1,
74  urlDelete.siteId, self.urlMd5)
75  StatisticLogManager.statisticUpdate(queryCallback, Constants.StatFreqConstants.FREQ_DELETED_STATE, 1,
76  urlDelete.siteId, self.urlMd5)
77  StatisticLogManager.logUpdate(queryCallback, "LOG_DELETE", urlDelete, urlDelete.siteId, self.urlMd5)
78  except Exception as ex:
79  logger.debug(">>> [URLDelete] Some Type Exception [LOOP] = " + str(type(ex)) + " " + str(ex))
80  ret.statuses.append(True)
81  self.recalculator.commonRecalc(urlDelete.siteId, queryCallback)
82  except Exception as excp:
83  logger.debug(">>> [URLDelete] Some Type Exception = " + str(type(excp)) + " " + str(excp))
84  ret.statuses.append(False)
85  else:
86  ret.statuses.append(False)
87 
88  return ret
89 
90 
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ recalculator

dc_db.URLDeleteTask.URLDeleteTask.recalculator

Definition at line 35 of file URLDeleteTask.py.

◆ uRLCleanUpTask

dc_db.URLDeleteTask.URLDeleteTask.uRLCleanUpTask

Definition at line 34 of file URLDeleteTask.py.

◆ urlMd5

dc_db.URLDeleteTask.URLDeleteTask.urlMd5

Definition at line 36 of file URLDeleteTask.py.


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