4 @link: http://hierarchical-cluster-engine.com/ 5 @copyright: Copyright © 2013-2014 IOIX Ukraine 6 @license: http://hierarchical-cluster-engine.com/license/ 32 def __init__(self, keyValueStorageDir, rawDataDir, dBDataTask):
33 super(URLDeleteTask, self).
__init__()
45 def process(self, urlDeletes, queryCallback):
47 for urlDelete
in urlDeletes:
48 if urlDelete.siteId ==
"":
49 urlDelete.siteId =
"0" 50 if self.
isSiteExist(urlDelete.siteId, queryCallback):
53 if urlDelete.url
is None:
55 if urlDelete.urlType == dc.EventObjects.URLStatus.URL_TYPE_URL:
57 localUrls = self.
uRLCleanUpTask.extractUrlByCriterions(urlDelete.siteId, isUrlExtract,
58 urlDelete.criterions, queryCallback)
60 localUrls.append(urlDelete.url)
61 logger.debug(
">>> [URLDelete] localUrls size = " + str(len(localUrls)))
62 for localUrl
in localUrls:
64 urlDelete.url = localUrl
65 if urlDelete.delayedType == dc.EventObjects.NOT_DELAYED_OPERATION:
66 self.
uRLCleanUpTask.deleteFromDataStorage(urlDelete, queryCallback)
68 elif urlDelete.delayedType == dc.EventObjects.DELAYED_OPERATION:
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)
86 ret.statuses.append(
False)
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)
109 if urlDelete.urlType == dc.EventObjects.URLStatus.URL_TYPE_URL:
110 localMd5 = hashlib.md5(urlDelete.url).hexdigest()
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
118 query = SQL_COPY_QUERY_TEMPLATE % (tbName, tbName, localMd5)
119 queryCallback(query, Constants.FOURTH_DB_ID, Constants.EXEC_INDEX,
True)
def isSiteExist(self, siteId, queryCallback, userId=None)
def calculateMd5FormUrl(self, url, urlType, useNormilize=False)
def copyUrlToDeleteDB(self, urlDelete, queryCallback)
GeneralResponse event object, represents general state response for multipurpose usage.
def process(self, urlDeletes, queryCallback)
def __init__(self, keyValueStorageDir, rawDataDir, dBDataTask)
def deleteFromMysqlDB(self, urlDelete, queryCallback)