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

Public Member Functions

def __init__ (self)
 
def process (self, sqlRequest, queryCallback, bdResolveFunc)
 
- 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)
 

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 20 of file SQLCustomTask.py.

Constructor & Destructor Documentation

◆ __init__()

def dc_db.SQLCustomTask.SQLCustomTask.__init__ (   self)

Definition at line 24 of file SQLCustomTask.py.

24  def __init__(self):
25  super(SQLCustomTask, self).__init__()
26 
27 
def __init__(self)
constructor
Definition: UIDGenerator.py:19

Member Function Documentation

◆ process()

def dc_db.SQLCustomTask.SQLCustomTask.process (   self,
  sqlRequest,
  queryCallback,
  bdResolveFunc 
)

Definition at line 34 of file SQLCustomTask.py.

34  def process(self, sqlRequest, queryCallback, bdResolveFunc):
35  # variable for result
36  ret = dbi.EventObjects.CustomResponse(sqlRequest.rid, sqlRequest.query, sqlRequest.dbName)
37  try:
38  logger.debug("!!! SQL Custom request: %s", str(sqlRequest.query))
39 
40  if sqlRequest is None:
41  raise Exception("Error: request object is None")
42 
43  if sqlRequest.query is None or \
44  (not isinstance(sqlRequest.query, basestring) and not isinstance(sqlRequest.query, list)):
45  raise Exception("Error: wrong type of sql request param (%s)", str(type(sqlRequest)))
46 
47  if isinstance(sqlRequest.query, basestring) and sqlRequest.query == "":
48  raise Exception("Error: sql request is empty string")
49 
50  if isinstance(sqlRequest.query, list) and len(sqlRequest.query) == 0:
51  raise Exception("Error: input list of sql requests is empty")
52 
53  if sqlRequest.dbName is None or \
54  not isinstance(sqlRequest.dbName, basestring) or \
55  sqlRequest.dbName == "":
56  raise Exception("Error: wrong database name '%s'", str(sqlRequest.dbName))
57 
58  dbIndex = bdResolveFunc(sqlRequest.dbName)
59  if dbIndex is None:
60  raise Exception("Error: there isn't '%s' database connection", str(sqlRequest.dbName))
61 
62  isSingleQuery = True
63  if isinstance(sqlRequest.query, basestring):
64  queries = [sqlRequest.query]
65  else:
66  queries = sqlRequest.query
67  isSingleQuery = False
68 
69  results = []
70  for query in queries:
71  # execute single request
72  if sqlRequest.includeFieldsNames == dbi.EventObjects.CustomRequest.SQL_BY_INDEX:
73  res = queryCallback(query, dbIndex)
74  elif sqlRequest.includeFieldsNames == dbi.EventObjects.CustomRequest.SQL_BY_NAME:
75  res = queryCallback(query, dbIndex, Constants.EXEC_NAME)
76 
77  if res is None:
78  raise Exception("Error: wrong SQL request '%s'", str(query))
79 
80  # success execution
81  results.append(res)
82 
83 # logger.debug("!!! SQL Custom results: '%s' ", Utils.varDump(results))
84  if isSingleQuery and len(results) > 0:
85  ret.result = results[0]
86  else:
87  ret.result = results
88 
89  except Exception, err:
90  ret.errString = str(err)
91  logger.debug("!!! SQL Custom request: %s", str(err))
92 
93  return ret
Here is the caller graph for this function:

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