36 def process(self, urlStatses, queryCallback):
37 uRLStatsResponses = []
38 for urlStats
in urlStatses:
39 uRLStatsResponse =
None 41 if urlStats
is not None:
42 if urlStats.urlMd5
is None:
43 if urlStats.urlCriterions
is not None and len(urlStats.urlCriterions) > 0:
44 localMd5s = self.uRLCleanUpTask.extractUrlByCriterions(urlStats.siteId,
False,
45 urlStats.urlCriterions, queryCallback)
46 if urlStats.statsCriterions
is not None:
48 if urlStats.urlCriterions
is None or len(urlStats.urlCriterions) == 0:
49 statsMd5s = self.uRLCleanUpTask.extractUrlByCriterions(urlStats.siteId,
51 urlStats.statsCriterions, queryCallback,
53 Constants.DC_FREQ_TABLE_NAME_TEMPLATE)
55 SQL_WHERE_TMPL =
"`UrlMd5` = '%s'" 56 statsCriterionCopy = copy.deepcopy(urlStats.statsCriterions)
57 for localMd5
in localMd5s:
58 urlStats.statsCriterions = copy.deepcopy(statsCriterionCopy)
59 if dc.EventObjects.URLFetch.CRITERION_WHERE
in urlStats.statsCriterions \
60 and urlStats.statsCriterions[dc.EventObjects.URLFetch.CRITERION_WHERE]
is not None:
61 urlStats.statsCriterions[dc.EventObjects.URLFetch.CRITERION_WHERE] =
' AND ' + \
62 (SQL_WHERE_TMPL % localMd5)
64 urlStats.statsCriterions[dc.EventObjects.URLFetch.CRITERION_WHERE] = (SQL_WHERE_TMPL % localMd5)
65 statsMd5s += self.uRLCleanUpTask.extractUrlByCriterions(urlStats.siteId,
67 urlStats.statsCriterions,
70 Constants.DC_FREQ_TABLE_NAME_TEMPLATE)
90 localMd5s.append(urlStats.urlMd5)
91 logger.debug(
">>> [URLStatsTask] localUrls size = " + str(len(localMd5s)))
92 for localMd5
in localMd5s:
94 urlStats.urlMd5 = localMd5
95 res = self.fetchStatsFromDB(urlStats, queryCallback)
96 if uRLStatsResponse
is None:
98 if res
is not None and len(res) > 0:
99 uRLStatsResponse.freqRows.extend(res)
100 except Exception
as ex:
101 logger.debug(
">>> [URLStatsTask] Some Type Exception = " + str(
type(ex)) +
" " + str(ex))
102 uRLStatsResponses.append(uRLStatsResponse)
104 return uRLStatsResponses