114 def __init__(self, configParser, connectionBuilderLight=None):
115 super(SitesManager, self).
__init__()
118 self.updateStatField(DC_CONSTS.SITES_RECRAWL_COUNTER_NAME, 0, self.STAT_FIELDS_OPERATION_INIT)
120 self.updateStatField(DC_CONSTS.SITES_RECRAWL_UPDATED_COUNTER_NAME, 0, self.STAT_FIELDS_OPERATION_INIT)
122 self.updateStatField(DC_CONSTS.SITES_RECRAWL_DELETED_COUNTER_NAME, 0, self.STAT_FIELDS_OPERATION_INIT)
124 self.updateStatField(DC_CONSTS.SITES_DRCE_COUNTER_NAME, 0, self.STAT_FIELDS_OPERATION_INIT)
127 if connectionBuilderLight
is None:
128 connectionBuilderLight = ConnectionBuilderLight()
130 className = self.__class__.__name__
133 self.serverName = configParser.get(className, self.CONFIG_SERVER)
134 self.DRCEDBAppName = configParser.get(className, self.CONFIG_DRCE_DB_APP_NAME)
137 serverConnection = connectionBuilderLight.build(TRANSPORT_CONSTS.SERVER_CONNECT, self.serverName)
140 self.addConnection(self.serverName, serverConnection)
143 self.eventTypes = {EVENT_TYPES.SITE_NEW:EVENT_TYPES.SITE_NEW_RESPONSE,
144 EVENT_TYPES.SITE_UPDATE:EVENT_TYPES.SITE_UPDATE_RESPONSE,
145 EVENT_TYPES.SITE_STATUS:EVENT_TYPES.SITE_STATUS_RESPONSE,
146 EVENT_TYPES.SITE_DELETE:EVENT_TYPES.SITE_DELETE_RESPONSE,
147 EVENT_TYPES.SITE_CLEANUP:EVENT_TYPES.SITE_CLEANUP_RESPONSE,
148 EVENT_TYPES.SITE_FIND:EVENT_TYPES.SITE_FIND_RESPONSE,
149 EVENT_TYPES.URL_NEW:EVENT_TYPES.URL_NEW_RESPONSE,
150 EVENT_TYPES.URL_STATUS:EVENT_TYPES.URL_STATUS_RESPONSE,
151 EVENT_TYPES.URL_UPDATE:EVENT_TYPES.URL_UPDATE_RESPONSE,
152 EVENT_TYPES.URL_DELETE:EVENT_TYPES.URL_DELETE_RESPONSE,
153 EVENT_TYPES.URL_FETCH:EVENT_TYPES.URL_FETCH_RESPONSE,
154 EVENT_TYPES.URL_CLEANUP:EVENT_TYPES.URL_CLEANUP_RESPONSE,
155 EVENT_TYPES.URL_CONTENT:EVENT_TYPES.URL_CONTENT_RESPONSE,
156 EVENT_TYPES.SQL_CUSTOM:EVENT_TYPES.SQL_CUSTOM_RESPONSE,
157 EVENT_TYPES.URL_PUT:EVENT_TYPES.URL_PUT_RESPONSE,
158 EVENT_TYPES.URL_HISTORY:EVENT_TYPES.URL_HISTORY_RESPONSE,
159 EVENT_TYPES.URL_STATS:EVENT_TYPES.URL_STATS_RESPONSE,
160 EVENT_TYPES.PROXY_NEW:EVENT_TYPES.PROXY_NEW_RESPONSE,
161 EVENT_TYPES.PROXY_UPDATE:EVENT_TYPES.PROXY_UPDATE_RESPONSE,
162 EVENT_TYPES.PROXY_DELETE:EVENT_TYPES.PROXY_DELETE_RESPONSE,
163 EVENT_TYPES.PROXY_STATUS:EVENT_TYPES.PROXY_STATUS_RESPONSE,
164 EVENT_TYPES.PROXY_FIND:EVENT_TYPES.PROXY_FIND_RESPONSE,
165 EVENT_TYPES.ATTR_SET:EVENT_TYPES.ATTR_SET_RESPONSE,
166 EVENT_TYPES.ATTR_UPDATE:EVENT_TYPES.ATTR_UPDATE_RESPONSE,
167 EVENT_TYPES.ATTR_DELETE:EVENT_TYPES.ATTR_DELETE_RESPONSE,
168 EVENT_TYPES.ATTR_FETCH:EVENT_TYPES.ATTR_FETCH_RESPONSE}
169 for ret
in self.eventTypes:
170 self.setEventHandler(ret, self.onEventsHandler)
173 self.configVars[self.CONFIG_DRCE_TIMEOUT] = configParser.getint(className, self.CONFIG_DRCE_TIMEOUT)
174 self.configVars[self.CONFIG_DRCE_ROUTE] = configParser.get(className, self.CONFIG_DRCE_ROUTE)
176 self.configVars[self.CONFIG_DRCE_NODES] = configParser.get(APP_CONSTS.CONFIG_APPLICATION_SECTION_NAME,
177 self.CONFIG_DRCE_NODES)
178 except ConfigParser.NoOptionError:
179 self.configVars[self.CONFIG_DRCE_NODES] = 1
180 self.drceHost = configParser.get(className, self.CONFIG_DRCE_HOST)
181 self.drcePort = configParser.get(className, self.CONFIG_DRCE_PORT)
182 hostParams =
HostParams(self.drceHost, self.drcePort)
183 self.drceManager = DRCEManager()
184 self.drceManager.activate_host(hostParams)
185 self.drceIdGenerator = UIDGenerator()
186 self.drceCommandConvertor = CommandConvertor()
189 self.configVars[self.CONFIG_RECRAWL_SITES_MAX] = configParser.getint(className, self.CONFIG_RECRAWL_SITES_MAX)
190 self.configVars[self.CONFIG_RECRAWL_SITES_ITER_PERIOD] = \
191 configParser.getint(className, self.CONFIG_RECRAWL_SITES_ITER_PERIOD)
192 self.configVars[self.CONFIG_RECRAWL_SITES_RECRAWL_DATE_EXP] = \
193 configParser.get(className, self.CONFIG_RECRAWL_SITES_RECRAWL_DATE_EXP)
194 self.configVars[self.CONFIG_RECRAWL_SITES_SELECT_CRITERION] = \
195 configParser.get(className, self.CONFIG_RECRAWL_SITES_SELECT_CRITERION)
196 self.configVars[self.CONFIG_RECRAWL_SITES_SELECT_ORDER] = \
197 configParser.get(className, self.CONFIG_RECRAWL_SITES_SELECT_ORDER)
198 self.configVars[self.CONFIG_RECRAWL_SITES_LOCK_STATE] = \
199 configParser.getint(className, self.CONFIG_RECRAWL_SITES_LOCK_STATE)
200 self.configVars[self.CONFIG_RECRAWL_SITES_OPTIMIZE] = \
201 configParser.getint(className, self.CONFIG_RECRAWL_SITES_OPTIMIZE)
202 self.configVars[self.CONFIG_RECRAWL_SITES_DRCE_TIMEOUT] = \
203 configParser.getint(className, self.CONFIG_RECRAWL_SITES_DRCE_TIMEOUT)
204 self.configVars[self.CONFIG_RECRAWL_DELAY_BEFORE] = configParser.getint(className, self.CONFIG_RECRAWL_DELAY_BEFORE)
205 self.configVars[self.CONFIG_RECRAWL_DELAY_AFTER] = configParser.getint(className, self.CONFIG_RECRAWL_DELAY_AFTER)
206 self.processRecrawlLastTs = time.time()
209 self.configVars[self.POLL_TIMEOUT_CONFIG_VAR_NAME] = configParser.getint(className, self.CONFIG_POLLING_TIMEOUT)
212 self.configVars[self.CONFIG_DEFAULT_RECRAWL_UPDATE_CRITERION] = \
213 configParser.get(className, self.CONFIG_DEFAULT_RECRAWL_UPDATE_CRITERION)
216 self.configVars[self.CONFIG_DEFAULT_RECRAWL_DELETE_OLD] = \
217 configParser.getint(className, self.CONFIG_DEFAULT_RECRAWL_DELETE_OLD)
219 self.configVars[self.CONFIG_DEFAULT_RECRAWL_DELETE_OLD_CRITERION] = \
220 configParser.get(className, self.CONFIG_DEFAULT_RECRAWL_DELETE_OLD_CRITERION)
222 self.configVars[self.CONFIG_RECRAWL_SITES_MAX_THREADS] = \
223 configParser.getint(className, self.CONFIG_RECRAWL_SITES_MAX_THREADS)
225 self.configVars[self.CONFIG_RECRAWL_SITES_MODE] = \
226 configParser.getint(className, self.CONFIG_RECRAWL_SITES_MODE)
229 self.recrawlSiteslQueue = {}
231 self.updateStatField(DC_CONSTS.RECRAWL_THREADS_COUNTER_QUEUE_NAME, 0, self.STAT_FIELDS_OPERATION_SET)
233 self.updateStatField(DC_CONSTS.RECRAWL_SITES_QUEUE_NAME, 0, self.STAT_FIELDS_OPERATION_SET)
235 self.updateStatField(DC_CONSTS.RECRAWL_THREADS_CREATED_COUNTER_NAME, 0, self.STAT_FIELDS_OPERATION_SET)
238 self.configVars[self.CONFIG_PURGE_METHOD] = configParser.getint(className, self.CONFIG_PURGE_METHOD)
241 self.configVars[self.CONFIG_RECRAWL_SITES_PERIOD_MODE] = \
242 configParser.getint(className, self.CONFIG_RECRAWL_SITES_PERIOD_MODE)
243 self.configVars[self.CONFIG_RECRAWL_SITES_PERIOD_MIN] = \
244 configParser.getint(className, self.CONFIG_RECRAWL_SITES_PERIOD_MIN)
245 self.configVars[self.CONFIG_RECRAWL_SITES_PERIOD_MAX] = \
246 configParser.getint(className, self.CONFIG_RECRAWL_SITES_PERIOD_MAX)
247 self.configVars[self.CONFIG_RECRAWL_SITES_PERIOD_STEP] = \
248 configParser.getint(className, self.CONFIG_RECRAWL_SITES_PERIOD_STEP)
252 self.updateStatField(DC_CONSTS.COMMON_THREADS_CREATED_COUNTER_NAME, 0, self.STAT_FIELDS_OPERATION_SET)
254 self.updateStatField(DC_CONSTS.COMMON_THREADS_COUNTER_QUEUE_NAME, 0, self.STAT_FIELDS_OPERATION_SET)
256 self.updateStatField(DC_CONSTS.COMMON_OPERATIONS_COUNTER_NAME, 0, self.STAT_FIELDS_OPERATION_INIT)
260 self.drceConnectionsPool = json.loads(configParser.get(className, self.DRCE_CONNECTIONS_POOL))
261 except ConfigParser.NoOptionError:
262 self.drceConnectionsPool =
None 263 except Exception
as err:
264 logger.error(
"Error de-serialize json of connection parameters for DRCE connections pool: %s", err)
265 self.drceConnectionsPool =
None 269 self.configVars[self.CONFIG_COMMON_COMMANDS_THREADING_MODE] = \
270 configParser.getint(className, self.CONFIG_COMMON_COMMANDS_THREADING_MODE)
271 except ConfigParser.NoOptionError:
272 self.configVars[self.CONFIG_COMMON_COMMANDS_THREADING_MODE] = self.COMMON_COMMANDS_THREADING_SIMPLE
def __init__(self)
constructor